我有一个文本文件,我想要做的就是比较第三列,看它是否等于1或0,所以我只是简单地使用
awk '$3 == 1 { print $0 }' input > output1
awk '$3 == 0 { print $0 }' input > output2
这是bash脚本的一部分,我确信有一个更优雅的方法,但上面的代码应该完成工作,只有它没有。 input
有425行文本,输入中的第三列始终为1或0,因此output1
+ output2
中的总行数应为425.但我得到417行
以下是输入示例(所有输入只有一行,有425行):
out_first.dat 1 1 0.000000 265075.000000 6.000000e-01 1.005205e-03 9.000000e-01 9.000000e-01 2.889631e+00 -2.423452e+00 3.730018e+00 -1.532915e+00
答案 0 :(得分:2)
如果$ 3为1或0,它将等于其平方,打印到output1 / 2。如果没有打印到其他检查。
awk `$3*$3==$3{print > "output"(2-$3); next} {print > "other"}' file
如果$3*$3==$3
令人困惑,请更改为$3==0 || $3===1
$3==0 || $3===1
,可以写成$3*($3-1)==0
,上面是以下内容。