我正在使用 c shell 并尝试使用 awk 比较两个文件。但下面的 awk 语句没有给出任何结果。
需要使用 C shell 在 awk 中实现此解决方案。
awk 'FNR==NR{a[$0]++;next}
{
{if \!( $0 in a )
{
print $0
}
}' cmp1 cmp2
cmp1文件
file:tst1
md5sum:aED567ZZZ
rowcount:1256
cmp2 文件
file:tst1
md5sum:AED567ZZZ
rowcount:1257
预期输出
rowcount:1257
md5sum:aED567ZZZ
答案1
我不能对这个解决方案抱有太多的信任,但它就是这样
awk 'FNR==NR{a[$0]++;next}
{
{if ( $0 in a == 0 )
{
print $0
}
}}' cmp1 cmp2
感谢@karthikr 和@jeff
附言。请注意,您的代码示例中缺少 }。
答案2
或者comm -13 cmp1 cmp2
,并且您没有任何与 csh 相关的纠缠。