两个不常见的文件并获得输出

时间:2016-12-21 08:48:55

标签: shell awk

这个问题的目的是1.csv有正确映射的记录,2.csv有错误映射的文件

我想找到1.csv和2.csv之间行和颜色的不匹配

1.csv

1111111111111111:xxxxxxxxxxxxxxx
2222222222222222:yyyyyyyyyyyyyyy
3333333333333333:zzzzzzzzzzzzzzz

2.csv

1111111111111111:xxxxxxxxxxxxxxx
1111111111111110:xxxxxxxxxxxxxxx
1111111111111123:xxxxxxxxxxxxxxx
11111111111111:xxxxxxxxxxxxxxx
2622222222222222:yyyyyyyyyyyyyyy
2222222222222222:yyyyyyyyyyyyret
2222222222222222:yyyyyyyyyyyyyyy
4444444444444444:ppppppppppppppp

输出应该是:

2622222222222222:yyyyyyyyyyyyyyy
2222222222222222:yyyyyyyyyyyyret
4444444444444444:ppppppppppppppp

我使用过awk命令但无法获得所需的输出

awk 'FNR==NR {a[$1]++; next} !a[$1]' 1.csv 2.csv

consier 1.csv作为正确的映射,我想找到1.csv和2.csv之间的不匹配 例如1.csv有这个条目

2222222222222222:yyyyyyyyyyyyyyy

这是正确的映射

2.csv有两个条目具有相同的第一个coloumn但不同的第二个coloumn

2622222222222222:yyyyyyyyyyyyyyyy 2222222222222222:yyyyyyyyyyyyyret

所以输出文件应该有错误的错配记录

2222222222222222:yyyyyyyyyyyyret

剩下的两行输出如下所示,因为这两个记录在1.csv中不存在,但在2.csv中,因此这些是错误的记录,应该在输出中打印

2622222222222222:yyyyyyyyyyyyyyyy 4444444444444444:ppppppppppppppppp

0 个答案:

没有答案