我需要删除大文件中包含大于用户指定数字的值的行(参见图片)。例如,我想摆脱值大于5e-48(x> 5e-48)的线,i。即应删除7e-46,7e-40,1e-36 ......的行。
sed,grep,awk或其他命令可以这样做吗?
谢谢
马库斯
答案 0 :(得分:4)
使用awk:
awk '$3 <= 5e-48' filename
这仅选择第三个字段小于5e-48的那些行。
如果字段可以包含空格(因为数据看起来是制表符分隔的),请使用
awk -F '\t' '$3 <= 5e-48' filename
这会将字段分隔符设置为\t
,因此会在制表符而不是任何空格处拆分行。对于显示的输入数据,它似乎没有必要,但是对这些事情采取防御措施是很好的做法(感谢@tripleee指出这一点)。
答案 1 :(得分:2)
例如,在Perl中,解决方案可以是
perl -ane'print unless$F[2]>5e-48'