I am working with a log file that contains entries that appear like this:
$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
I would like to filter the lines where the wait time is greater than an arbitrary value (let's say 600 seconds). What's the best way to do this in bash?
Best Answer
This
awk
will get you what you want.or per @Kusalananda, this line is enough