我想用awk比较两个文件并输出不匹配的列。
到目前为止我一直在尝试
awk -F',' 'FNR==NR{
for(i=0;i<=NF; i++){
a[i];
}next;
}
for (i=1;i<=NF;i++){
if($i in a){
{printf("Match: %s , col-> %d" $i,i-1)}
else
{printf("UN- Match: %s , col-> %d" $i,i-1)
}
}
}'
但是这个没用。
这就是我需要的。
Example:
file 1
1,2,3,4,5,6
file 2
1,2,5,4,5,7
Output
col 3 -> 3,5
col 6 -> 6,7
答案 0 :(得分:0)
Awk,也适用于更多行
awk -F, 'NR==FNR{for(i=1;i<=NF;i++)a[NR,i]=$i;next}
{for(i=1;i<=NF;i++)if(a[FNR,i]!=$i)print "Row:"FNR,"Col:"i"->",a[FNR,i]","$i}' file{1,2}
输入
File1中
1,2,3,4,5,6
6,5,4,3,2,1
文件2
1,2,5,4,5,7
6,4,4,3,1,1
输出
Row:1 Col:3-> 3,5
Row:1 Col:6-> 6,7
Row:2 Col:2-> 5,4
Row:2 Col:5-> 2,1