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

How to merge two files line by line in shell script?

我想合并两个输入文件,第一个文件加上第二个不重复的文件的内容(只考虑用逗号分隔的第一个参数)。我如何在 .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[]++' file1 file2
1,A
2,B
3,C
4,B
5,D

说明

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

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

sort file1 file2

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