빈 필드가 있는 행의 행 번호를 가져옵니다.

빈 필드가 있는 행의 행 번호를 가져옵니다.

파이프로 구분된 큰 파일이 있는데 특정 필드가 비어 있는 모든 줄의 줄 번호를 찾아야 합니다.

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과 을 결합 하거나 범용 텍스트 필터를 사용할 수 있습니다 .grepawk

awk -F'|' '$6 == "" {print NR}'

답변3

^$정규식은 줄의 시작과 끝을 일치시키므로 ^$빈 줄이 일치됩니다. 줄 자체가 아닌 일치하는 줄의 줄 번호를 출력하는 매개 변수를 grep허용하므로 다음과 같습니다.-n

$ grep -n '^$'

역 일치를 사용하고 일치하지 않는 줄 수를 계산할 수도 있습니다 -v. 이 경우 최소한 하나의 문자가 있는 줄을 일치시키려고 합니다( .모든 문자가 일치하는 경우).

$ grep -n -v .

관련 정보