awk - 와일드카드 일치를 무시하는 방법은 무엇입니까?

awk - 와일드카드 일치를 무시하는 방법은 무엇입니까?

세 번째 열 값을 기반으로 csv 파일을 처리하고 일치하는 행을 별도의 파일에 저장하고 싶습니다.

#!/bin/bash awk -F, '$3 ~ /0/ {print}' ./inputfile.csv > ./out/output.csv

내가 원하는 것은 세 번째 열의 값이 0이지만 위 명령을 사용하면 출력 파일에 세 번째 열 값 0, 10, 20, 100 등이 포함됩니다. (0을 포함하는 모든 값).

와일드카드 일치를 무시하고 세 번째 열에 절대 0 값만 사용하도록 awk에 어떻게 지시합니까?

답변1

다음을 수행할 수 있습니다.

awk -F, '$3 == "0"' ./inputfile.csv > ./out/output.csv

~패턴 일치이므로 여기서는 필요하지 않습니다. ==리터럴 문자열 "0"과 일치하며 그 외에는 일치하지 않습니다. print코드 블록을 제공하지 않으면 암시되기 때문에 해당 진술도 제거했습니다 .

구문이 쉼표보다 더 복잡할 수 있으므로(예: 인용 및 이스케이프 처리) 실제 CSV 구문 분석 라이브러리 사용을 고려할 수도 있습니다.

관련 정보