删除包含小于/大于用户指定值的数字的行

Mar*_*kus -2 awk grep sed

我需要删除包含大于用户指定数字的值的大文件中的行(见图)。例如,我想删除值大于 5e-48 (x>5e-48) 的行,即 7e-46, 7e-40, 1e-36,.... 的行应该被删除。

sed、grep、awk 或任何其他命令可以做到这一点吗?

谢谢

马库斯

在此处输入图片说明

Win*_*ute 5

使用 awk:

awk '$3 <= 5e-48' filename
Run Code Online (Sandbox Code Playgroud)

这仅选择第三个字段小于 5e-48 的那些行。

如果字段可以包含空格(因为数据似乎是制表符分隔的),请使用

awk -F '\t' '$3 <= 5e-48' filename
Run Code Online (Sandbox Code Playgroud)

这将字段分隔符设置为\t,因此行在制表符而不是任何空格处分开。显示的输入数据似乎没有必要,但对这些事情保持警惕是一种很好的做法(感谢@tripleee 指出这一点)。