我有一个包含很多行和列的文件,但所有行中的列数并不相同。我想提取增量值大于 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
有人可以帮忙吗?如何 grep 所有这些行和相应的增量值?
答案1
正如评论中指出的,对于空格以外的分隔符(即制表符似乎是您的情况),以下解决方案可以正常工作。
如果分隔符是空格,则以下解决方案将不起作用。您需要澄清什么是真正的字段分隔符。
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
如果您对数值的格式有疑问,您甚至可以尝试
awk -F"\t" '($5*1)>0.02' file
答案2
如果您尝试处理的是PrimeTime
修复您的问题的时序报告timing violations
,crosstalk noise violations
那么我建议您使用特定EDA
工具提供的命令(Tcl)。
重新发明轮子并不是真正的解决办法。