目标:仅输出大于1且小于-1的数据
要么
输出数据介于1和-1之间
我有awk的基础知识,可以打印第2列(我的数据在哪里)注意我也指定了0-1的范围
awk '/[0-1]/ {print $2}' test.dat
Run Code Online (Sandbox Code Playgroud)
我还需要有行号,所以我添加了NR ...
awk '/[0-1]/ {print $2 NR}' test.dat
Run Code Online (Sandbox Code Playgroud)
为了确保我清楚,重点是确定哪些数据行超出了可接受的范围,因此我们可以在分析中忽略它们.(即任何大于1或小于-1的东西都是太大的变化).
你能提供的任何帮助都会很棒.我在下面粘贴了一些示例数据.
不确定是否要评估每列中的数据,或者是否需要测试特定列.测试单个列是最简单的; 测试多个或所有列是模式的相当简单的重复扩展.既然你提到第2列具体而言,我们假设你要打印第2列,只有当它为-1到1之间:
awk -F, '($2 >= -1) && ($2 <= 1) { print $2 }'
Run Code Online (Sandbox Code Playgroud)
要测试大于1或小于-1的字段:
awk -F, '($2 <= -1) || ($2 >= 1) { print $2 }'
Run Code Online (Sandbox Code Playgroud)
打印一个不同的字段,或整个行代替($0
)应该是相当明显的.检查每个字段中,简单地重复整个($2 >= -1) && ($2 <= 1) { print $2 }
对你感兴趣的领域的每一个这样的(未测试)条款(这很快得到详细),或东西:
awk -F, '{ for (i = 1; i <= NF; ++i) if (($i >= -1) && ($i <= 1)) print $i; }'
Run Code Online (Sandbox Code Playgroud)