![특정 열이 있는 행을 제외하는 방법은 무엇입니까?](https://linux55.com/image/57960/%ED%8A%B9%EC%A0%95%20%EC%97%B4%EC%9D%B4%20%EC%9E%88%EB%8A%94%20%ED%96%89%EC%9D%84%20%EC%A0%9C%EC%99%B8%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
탭으로 구분된 열을 포함하는 입력 파일이 있습니다.
네 번째와 열한 번째 열에서 "NA"가 포함된 행을 삭제해야 합니다.
질문:awk에서는 어떻게 할 수 있나요?
답변1
awk -F"\t" '$4 != "NA" || $11 != "NA"' filename
awk는 파일을 제자리에서 편집하지 않습니다. 변경 사항을 파일에 다시 저장하려면 다음을 수행하십시오.
tmp=$(mktemp)
awk -F"\t" '...' filename > "$tmp" && mv "$tmp" filename
답변2
awk
기준에 맞지 않는 줄을 인쇄 하라고 지시합니다 .
BEGIN { FS="\t" }
$4 != "NA" || $11 != "NA"
이는 부울 논리의 역과정입니다 ~a|~b == a&b
. 여기서 .