如何在shell脚本中逐行合并两个文件?



我想合并两个输入文件,结果是第一个文件加上第二个文件的内容,该文件没有重复(仅考虑用逗号分隔的第一个参数(。如何在.sh中实现这一点?下面是示例数据。谢谢

我有什么

file1            file2
1,A               1,B   
2,B               2,B   
3,C               4,B
5,D

期望的输出

file1
1,A
2,B
3,C
4,B
5,D

Awk 对于这类事情来说排序得很好

$ awk -F',' '!a[$1]++' file1 file2
1,A
2,B
3,C
4,B
5,D

解释

  • -F','使用逗号作为字段分隔符
  • !a[$1]++如果您以前从未见过字段 #1,请打印整行的快捷方式

由于问题没有明确排除此类技术,因此这是另一种方法:

sort file1 file2

sort实用程序合并文件并对结果进行排序,在上述情况下,输出到 stdout。

最新更新