LinuxとUnix環境の両方にこのパターンのファイルがあります。
# file1
text1 98432230
text2 123412
text3 10
line4 0
line5 0
line6 40000
... ...
line10 20
... ...
で終わる行を除外しようとしますが0
、などで終わる行は除外しようとします10
。20
40000
98432230
|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
変数NF
sはフィールド数$NF
で、最後のフィールドも同じです。 true と評価される式は「この行印刷」を意味するため、「最後のフィールドがゼロ以外のすべての行$NF!=0
印刷」を意味します。
これをさらに簡素化して、次のこともできます。
awk '$NF' file