我想比较文件中的两列(中间)是否彼此相同。我不知道该怎么做...因为我工作的原始文件非常庞大(在Gb中)
文件1(第1列和第4列 - 检查它们是否相同)
mid A1 A2 mid A3 A4 A5 A6
18 we gf 18 32 23 45 89
19 ew fg 19 33 24 46 90
21 ew fg 21 35 26 48 92
由于 中号
答案 0 :(得分:4)
如果您只是需要找到不同的行,awk
会这样做,
awk '$1!=$4{print $1,$4}' data
您可以使用diff
和awk
查看预付款差异。
diff <(awk '{print $1}' data) <(awk '{print $4}' data)
此命令的状态代码($?
)将告知它们是相同(零)还是不同(非零)。
你也可以在基表达式中使用它,就像这样,
if diff <(awk '{print $1}' data) <(awk '{print $4}' data) >& /dev/null;
then
echo same;
else
echo different;
fi;
答案 1 :(得分:1)
这样的事情:
awk '{ if ($1 == $4) { print "same"; } else { print "different"; } }' < foo.txt
答案 2 :(得分:0)
完成Shiplu Mokaddim的问题,如果您有另一个分隔符(例如在csv文件中),则可以使用:
awk -F; '$1!=$4{print $1,$4}' data.csv | sed -r 's/ /;/g'
在此示例中,定界符为“;”。最后的sed命令是将分隔符再次替换为原始分隔符。确保答案中没有空格,即日期时间。
答案 3 :(得分:-1)
问题:比较同一文件中的两列值。
答案:
TaskPoolScheduler