目标:仅输出大于 1 且小于 -1 的数据
or
输出1到-1之间的数据
我有 awk 的基础知识,可以打印第 2 列(我的数据所在的位置)
注意我还指定了0-1的范围
awk '/[0-1]/ {print $2}' test.dat
我还需要行号,所以我添加了 NR...
awk '/[0-1]/ {print $2 NR}' test.dat
为了确保我说得清楚,关键是要确定哪些数据行超出了可接受的范围,这样我们就可以在分析中忽略它们。 (即任何大于 1 或小于 -1 的变化都太大)。
您能提供的任何帮助都会很棒。我在下面粘贴了一些示例数据。
http://pastebin.com/7tpBAqua http://pastebin.com/7tpBAqua
不确定您是否要评估每一列中的数据,或者是否需要测试特定列。测试单个列是最简单的;测试多个或所有列是该模式的相当简单的重复扩展。由于您具体提到了第 2 列,因此我们假设您只想在第 2 列介于 -1 和 1 之间时打印第 2 列:
awk -F, '($2 >= -1) && ($2 <= 1) { print $2 }'
要测试该字段是否大于 1 或小于 -1:
awk -F, '($2 <= -1) || ($2 >= 1) { print $2 }'
打印不同的字段或整行($0
)应该是相当明显的。要检查每个字段,只需重复整个($2 >= -1) && ($2 <= 1) { print $2 }
您感兴趣的每个字段的子句(很快就会变得冗长),或者类似的东西(未经测试):
awk -F, '{ for (i = 1; i <= NF; ++i) if (($i >= -1) && ($i <= 1)) print $i; }'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)