特定の値以上を含む行の抽出

特定の値以上を含む行の抽出

私は次のエントリを含むログファイルで作業しています。

$Hostname1:  0x7FDBF4B1AB10 (  23698) waiting 100 seconds, NSDThread: for I/O completion on disk vd4
$Hostname2:  0x7F2D10A2F8C0 (  25393) waiting 200 seconds, NSDThread: for I/O completion on disk vd35
$Hostname3:  0x7F2D109F4290 (  25343) waiting 900 seconds, NSDThread: for I/O completion on disk vd11
$Hostname4:  0x7FDBF4B1AB30 (  23698) waiting 100 seconds, NSDThread: for I/O completion on disk vd40
$Hostname5:  0x7F2D10A2F830 (  25392) waiting 750 seconds, NSDThread: for I/O completion on disk vd13
$Hostname6:  0x7F2D109F4240 (  25342) waiting 500 seconds, NSDThread: for I/O completion on disk vd14

待ち時間が任意の値(600秒など)より大きい行をフィルタリングしたいと思います。 Bashでこれを行う最善の方法は何ですか?

ベストアンサー1

これはawkあなたが望むものを得るでしょう。

awk '$6 > 600 { print }' file

$Hostname3:  0x7F2D109F4290 (  25343) waiting 900 seconds, NSDThread: for I/O completion on disk vd11
$Hostname5:  0x7F2D10A2F830 (  25392) waiting 750 seconds, NSDThread: for I/O completion on disk vd13

または@Kusalanandaによると、これを減らすことで十分です。

awk '$6 > 600 ' file 

おすすめ記事