両方の列に文字列を含む行を削除する

両方の列に文字列を含む行を削除する

タブ区切りのファイルがあります。

TRINITY_DN42298_c0_g1_i1.p1 NA  NA
TRINITY_DN12995_c0_g1_i1.p1 PF06799 NA
TRINITY_DN2326_c0_g1_i4.p3  NA  NA
TRINITY_DN6047_c0_g1_i1.p1  PF10585 GO:0008641
TRINITY_DN37780_c0_g1_i3.p2 PF00071 GO:0003924,GO:0005525
TRINITY_DN2787_c0_g1_i2.p1  NA  NA
TRINITY_DN29879_c0_g1_i3.p1 PF01657 NA
TRINITY_DN72702_c0_g1_i1.p1 PF00498 GO:0005515
TRINITY_DN24890_c0_g1_i7.p1 PF00854 GO:0016020,GO:0022857,GO:0055085
TRINITY_DN46477_c0_g1_i1.p1 PF00069 GO:0004672,GO:0005524,GO:0006468

列2と列3の両方からNAを含む行を削除したいと思います。

TRINITY_DN12995_c0_g1_i1.p1 PF06799 NA
TRINITY_DN6047_c0_g1_i1.p1  PF10585 GO:0008641
TRINITY_DN37780_c0_g1_i3.p2 PF00071 GO:0003924,GO:0005525
TRINITY_DN29879_c0_g1_i3.p1 PF01657 NA
TRINITY_DN72702_c0_g1_i1.p1 PF00498 GO:0005515
TRINITY_DN24890_c0_g1_i7.p1 PF00854 GO:0016020,GO:0022857,GO:0055085
TRINITY_DN46477_c0_g1_i1.p1 PF00069 GO:0004672,GO:0005524,GO:0006468

試験を終えた

sed -i '/NA/d' ./file.txt

ベストアンサー1

あなたは試すことができますawk

awk -F'\t' '!($2 == "NA" && $3 == "NA")' file

このオプションは、2番目と3番目のパラメータを取り、その内容が両方でないことを確認できるように-Fフィールド区切り文字を設定します。その場合は、ラインを印刷してください。\tNAawk

おすすめ記事