다음 구문으로 구분된 파일이 있습니다.
A|B|C|D|E
각 행의 세 번째 열에서 null(빈) 값이 있는 레코드 수를 찾는 방법은 무엇입니까?
답변1
그리고 awk
:
awk -F '\\|' '$3==""' file.txt
-F '\\|'
필드 구분 기호를 텍스트로 설정|
$3==""
세 번째 필드가 비어 있는지 확인하고, 비어 있으면 레코드를 인쇄합니다(기본값)
예:
% cat file.txt
A|B|C|D|E
A|B|C|D|E
A|B||D|E
% awk -F '\\|' '$3==""' file.txt
A|B||D|E
실제로 하나의 문자만 필드 구분 기호로 사용하면 문자 그대로 처리되므로 이스케이프할 필요가 없습니다. @Stéphane Chazelas:
awk -F '|' '$3==""' file.txt
답변2
일방 통행:
awk -F"|" '{if (length($3) == 0) ++count } END { print count }' yourfile