値の比較とファイル行の削除

値の比較とファイル行の削除

次のデータを含むファイルがありますtest1.txt

nnn   90
vvv   80
ttt   50
sss   20

2番目の列の値を比較し、その行を削除したいと思います。たとえば、2 番目の列の値が 20 より小さい場合は、対応する行エントリを削除します。出力はtest1.txt次のようになります。

nnn   90
vvv   80
ttt   50

sedとコマンドを試しましたが、うまくいきawkません。

答え1

そしてawk

awk '$2>20' file

$2getherの2番目のフィールドがそれより大きいことを確認してください20。その場合は、その行を印刷します。

答え2

そしてbash

$ while read -r a b; do [ "$b" -gt 20 ] && echo "$a $b"; done <file.txt 
nnn 90
vvv 80
ttt 50

その後、各行を読み取り、スペースで区切られた列の2番目の列に20より大きい値があることを確認し、その場合は行を印刷します。

関連情報