我有一个数据文本文件如下:
数据=
arht -0.0006 0.0001 0.0147 100.0 100.0
arht -0.0006 0.0006 0.0133 100.0 100.0
bcmd -0.0016 0.0010 0.0168 100.0 100.0
bcmd -0.1012 0.0010 0.0184 100.0 100.0
bcmd 0.2011 0.0024 0.0126 100.0 100.0
.
.
.
我需要为 2、3 和 4 列提取大于 0.10 和 -0.10 的行。对于上面的示例,最后两行中的 2、3 和 4 列包含大于 0.10 和 -0.10 的值。然后,输出文件应该是:
输出:
bcmd -0.1012 0.0010 0.0184 100.0 100.0
bcmd 0.2011 0.0024 0.0126 100.0 100.0
在
awk
中,表达式计算结果为 true 时的默认操作是打印当前行。由于您需要检查数字的绝对值,忽略符号,一个简单的技巧(用户elmclose在评论中提到)是检查数字的平方根乘以自身(这会将数字作为正整数返回) 大于阈值。所以你可以简单地做:您还可以使用 awk 中的函数来检查范围的有效性。
或更简单地说:
您可以通过编辑 .1 和 -.1 来定义任何范围限制