有一个file1如下:

21,2018042100
22,2018042101
87,2018042102
98,2018042103


有file2如下:

45,2018042100
86,2018042102
87,2018042103


我需要的是:(file3)

2018042100,21,45
2018042101,22,0
2018042102,87,86
2018042103,98,87


在文件3的第2行中,文件1中存在2018042101的数据,但在文件2中不存在。因此,在属于file2的$ 3列中插入了0。

请协助寻找如何创建类似file3的文件。
谢谢。

最佳答案

加入似乎是针对该问题的:

join -t',' -a 1 -a 2 -j 2 file1 file2
2018042100,21,45
2018042101,22
2018042102,87,86
2018042103,98,87


除了第2行中缺少“,0”外,也许您也可以在手册页中找到该问题的解决方案。否则,您可以使用sed纠正该问题。

join -t',' -a 1 -a 2 -e "0" -j 2 file1 file2  | sed -r 's/^[^,]+,[^,]+$/&,0/'
2018042100,21,45
2018042101,22,0
2018042102,87,86
2018042103,98,87

关于linux - 比较Shell脚本中两个不同文件中的两列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49958479/

10-13 07:17