grepは0.2の代わりに0で行を削除しますか?

grepは0.2の代わりに0で行を削除しますか?

次のような内容のファイルがあります。

0
0
0.2
0
0
0
0

ゼロを含むすべての行を削除する必要があります。
を使用したいが、grep -v "0"0.2を含む行も削除されます。そのオプションが利用可能であることがわかりました-wが、それも機能しないようです。

ゼロが1つだけ含まれる行をすべて削除し、ゼロで始まるすべての行を保持するにはどうすればよいですか?

ベストアンサー1

grep -vx 0

からman grep

-x, --line-regexp
       Select only those matches that exactly match the whole line.
       For a regular expression pattern, this is like parenthesizing
       the pattern and then surrounding it with ^ and $.

-w0最初の項目は0.02「単語」と見なされ、失敗するため、この行は一致します。これは「シルバー」文字が後に来るためです。 ieなしで元のコマンドを実行すると、-vこれを見ることができますgrep -w "0"

おすすめ記事