나는 이것을 가지고있다:
S=`cat sales.txt`;
echo "$S" | cut -d: -f5 | grep -E '[0-9][0-9][0-9]' | wc -l
내 텍스트 파일:이름:ID:번호:유형:값
Tom:8:987654:A:67 //1
Dick:9:7651:B:83 //2
Harry:5:21215121:A:92 //3
Molly:2:1231872231:A:44 //4
Megan:123:322:B:145 //5
Russia:8:99231272:B:530 //6
Boleh:123:29321831:C:5000 //7
다섯 번째 열 값이 0-999 범위에 있는 행 수를 계산하려고 합니다.
실행하려고 하면 실제로는 6이어야 하는데 3이 반환됩니다.
답변1
두 자리 숫자가 정규식과 일치하지 않습니다 [0-9][0-9][0-9]
.
또한 파일을 변수에 저장한 다음 이를 사용하여 인쇄하는 echo
것은진짜나쁜 생각. 바라보다왜 printf가 echo보다 나은가요?, 그러나 더 중요한 것은 명령 대신 작업을 cat file
수행 할 수 있다는 것입니다.echo
실제로 Awk로 모든 작업을 수행할 수 있으며 그럴 필요도 없습니다 cat
. 음수를 표시하지 않았으므로 "1000 미만"만 확인하겠습니다.
awk -F: '$5 < 1000 {a++} END {print a}' sales.txt