特定の列を含む行を除外する方法は?

特定の列を含む行を除外する方法は?

タブで区切られた列を含む入力ファイルがあります。

4番目と10番目の列から「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。ここで。

関連情報