Grepは0で終わる行を除外しますが、10、100などは除外します。

Grepは0で終わる行を除外しますが、10、100などは除外します。

LinuxとUnix環境の両方にこのパターンのファイルがあります。

# file1
text1   98432230
text2    123412
text3        10
line4         0
line5         0
line6     40000
...         ...
line10       20
...         ... 

で終わる行を除外しようとしますが0、などで終わる行は除外しようとします10204000098432230

|grep -v "\0$"、、、、をテストしましたが、10、20、40000、および98432230を含むゼロで終わる行を除外するため、それらのいずれも機能しませ| grep -v "[[:space:]]0$"ん。| grep -v " 0"| sed '/0/d'| sed "/0$/d"

どんな提案がありますか?

ベストアンサー1

使用するgrep代わりにawk

$ awk '$NF!=0' file
text1   98432230
text2    123412
text3        10
line6     40000
...         ...
line10       20
...         ... 

awk変数NFsはフィールド数$NFで、最後のフィールドも同じです。 true と評価される式は「この行印刷」を意味するため、「最後のフィールドがゼロ以外のすべての行$NF!=0印刷」を意味します。

これをさらに簡素化して、次のこともできます。

awk '$NF' file

おすすめ記事