特定の数値を持つ行の削除

特定の数値を持つ行の削除

次のファイルがあります。

AA  110 B   2   ..  BB  3   ... BBB 3   D   F   3   D   D
AA  111 B   2   ..  BB  3   ... BBB 0   F   F   0   F   F
AA  112 C   2   ..  BB  3   ... BBB 0   D   F   0   D   F
AA  120 D   2   ..  FF  3   ... FFF 3   D   F   3   D   D

特定の値0を含む行を削除したいと思います。私がこうすれば:

sed '/0/d' infile > newfile

そして、行1及び4は、110及び120に「0」が含まれているので削除される。私はgrepgrep -v '0' infile > newfileやawkの他のオプションを試しましたが、成功しませんでした。

これを行う簡単な方法があると確信していますが、見つかりません。どんなアイデアがありますか?

ありがとうございます!

答え1

完全な単語に一致するように-w追加:grep

$ grep -vw 0 infile 
AA  110 B   2   ..  BB  3   ... BBB 3   D   F   3   D   D
AA  120 D   2   ..  FF  3   ... FFF 3   D   F   3   D   D

答え2

努力する単語境界アンカー

sed '/\b0\b/d' file
AA  110 B   2   ..  BB  3   ... BBB 3   D   F   3   D   D
AA  120 D   2   ..  FF  3   ... FFF 3   D   F   3   D   D

答え3

タブ区切り記号の更新

sed '/\t0\t/d' infile > newfile

しかし、これはより安全です。

sed '/\b0\b/d' infile > newfile

関連情報