我需要删除包含大于用户指定数字的值的大文件中的行(见图)。例如,我想删除值大于 5e-48 (x>5e-48) 的行,即 7e-46, 7e-40, 1e-36,.... 的行应该被删除。
sed、grep、awk 或任何其他命令可以做到这一点吗?
谢谢
马库斯
使用 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 指出这一点)。