我有一个数据文本文件如下:
数据=
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
答案1
答案2
您还可以使用 awk 中的函数来检查范围有效性。
awk 'function fg(v) {return v<=-.1 || v>=.1 ? 1 : 0} (fg($2)+fg($3)+fg($4)){print}' mkl.txt
或者更简单地说:
awk 'function fg(v) {return v<=-.1 || v>=.1 ? 1 : 0} fg($2)+fg($3)+fg($4)' mkl.txt
您可以通过编辑 .1 和 -.1 来定义任何范围限制