获取列值大于阈值的所有行

ash*_*osh 0 grep awk text-processing numeric-data

我有一个包含很多行和列的文件,但所有行中的列数都不相同。我想提取所有增量值大于 0.02 的行

Point          Fanout   cap   trans   delta   incr   Path
----------------------------------------------------------
row1             1       0.02  0.01   0.00     0.03   0.04
row2             2       0.04
row3             1       0.01  0.02    0.04    0.05   0.06
row4                     0.03
row5                           0.04     0.05    0.07  0.07
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?如何grep所有这些行和相应的增量值?

Geo*_*iou 8

正如评论中指出的那样,对于除空格以外的分隔符(即制表符似乎是您的情况),波纹管解决方案可以正常工作。
如果分隔符是空格,则解决方案将不起作用。您需要澄清什么是真正的字段分隔符。

awk -F"\t" '$5>0.02' file
#or
awk -F"\t" 'NR==1{print;next}$5>0.02' file #to keep the header
#or
awk -F"\t" 'NR==1 || $5>0.02' file  #also keeps header as advised in comments
#or 
awk -F"\t" 'NR<=2 || $5>0.02' file   #keep header and dashed row bellow header as advised by @Sundeep 
Run Code Online (Sandbox Code Playgroud)

如果您对数值的格式有疑问,您甚至可以尝试

awk -F"\t" '($5*1)>0.02' file
Run Code Online (Sandbox Code Playgroud)