我有两个CSV文件:
hogehoge.csv
1,aaa,bbb
2,ccc,ddd
3,eee,fff
4,ggg,hhh
5,iii,jjj
6,kkk,lll
7,mmm,nnn
8,ooo,ppp
9,qqq,rrr
10,sss,ttt
hogehoge2.csv
1,aaa,bb
2,ccc,ddd
3,eee,fff
4,ggg,hhh
5,iii,jjj
7,mmm,nnn
8,ooo,ppp
9,qqq,rrr
10,sss,ttt
我希望通过命令行(diff / cut / awk)得到这样的结果。
6,kkk,lll
第一行有所不同,但我想在第一行忽略这种差异。
答案 0 :(得分:0)
正如问题所述,您只想逐行比较两个文件。 comm
可能是个不错的选择:
comm -3 hogehoge.csv hogehoge2.csv
如果你想忽略每个文件的第一行:
comm -3 <(tail -n +2 hogehoge.csv) <(tail -n +2 hogehoge2.csv)
将准确打印您指定的输出。注意:comm -3
将打印每个文件中不同的行,第二个文件中不同行的列表将使用制表符缩进。要删除标签:
comm -3 <(tail -n +2 hogehoge.csv) <(tail -n +2 hogehoge2.csv) | sed $'s/\t*//'