Id, name, currency
101,aaa, 10000
102,BBB,
103,ccc, 20000
빈 셀 통화 열이 있다는 것을 알고 있습니다. 터미널 명령을 사용하여 어떻게 찾을 수 있나요?
답변1
데이터가 다음과 같다고 가정해 보겠습니다.
Id,name,currency
101,aaa,10000
102,BBB,
103,ccc,20000
그런 다음 다음을 사용하여 세 번째 필드에 데이터가 포함되지 않은 행을 인쇄할 수 있습니다.
$ awk -F , '$3 == ""' file.csv
102,BBB,
명령줄에서 -F ,
입력 필드 구분 기호를 쉼표로 설정하므로 awk
쉼표의 각 줄은 별도의 필드로 분할됩니다. 조건 $3 == ""
은 "필드 3이 비어 있음"을 의미합니다("비어 있음"은 "공백도 포함하지 않음"을 의미함).진짜, 기본 작업이 수행됩니다. 기본 동작은 현재 줄을 인쇄하는 것입니다.
머리글 행도 출력하시겠습니까?
$ awk -F , 'NR == 1 || $3 == ""' file.csv
Id,name,currency
102,BBB,
조건은 NR == 1 || $3 == ""
"첫 번째 행이거나 세 번째 필드가 비어 있는 경우"를 의미합니다.
각 출력 줄에 줄 번호를 추가하려면 다음을 사용하십시오.
$ awk -F , 'NR == 1 || $3 == "" { print NR, $0 }' file.csv
1 Id,name,currency
3 102,BBB,
대신 여기기본실제로 우리는 현재 줄 번호( NR
)와 파일의 원본 텍스트 줄( $0
)을 인쇄하는 블록을 트리거합니다.
답변2
grep -n "null-(blank)" file.txt
"null-(공백)"이 나타나는 각 줄(줄 번호 포함)을 출력합니다.
통화 열만 확인하려면 다음 정규식 패턴을 사용하면 됩니다.
grep -n "[^,]*,[^,]*,[ ]*null-(blank)" file.txt