파이프로 구분된 큰 파일이 있는데 특정 필드가 비어 있는 모든 줄의 줄 번호를 찾아야 합니다.
cut -d \| -f 6 filename.txt
열을 출력하는 데 사용할 수 있습니다 .
위의 어떤 출력 줄이 비어 있는지 찾기 위해 어떤 유틸리티/도구/명령을 사용할 수 있습니까?
답변1
# cut -d \| -f 6 test.txt | grep -v -E .\+ -n
grep
-v invert match
-E .\+ match any 1+ character
-n output line numbers
답변2
다른 사람들이 보여준 것처럼 cut
과 을 결합 하거나 범용 텍스트 필터를 사용할 수 있습니다 .grep
awk
awk -F'|' '$6 == "" {print NR}'
답변3
^
$
정규식은 줄의 시작과 끝을 일치시키므로 ^$
빈 줄이 일치됩니다. 줄 자체가 아닌 일치하는 줄의 줄 번호를 출력하는 매개 변수를 grep
허용하므로 다음과 같습니다.-n
$ grep -n '^$'
역 일치를 사용하고 일치하지 않는 줄 수를 계산할 수도 있습니다 -v
. 이 경우 최소한 하나의 문자가 있는 줄을 일치시키려고 합니다( .
모든 문자가 일치하는 경우).
$ grep -n -v .