比较两个文件并打印内容

比较两个文件并打印内容

我想比较两个文件,并希望输出包含两个文件的唯一内容+第一个文件的公共内容。

例子 :-

文件A.txt

A=x
B=y
C=z

文件B.txt

A=p
D=q
E=r

输出 :-

A=x
B=y
C=z
D=q
E=r

请帮助我解决这个问题。我想在 Linux 服务器上执行此操作,因此可以使用任何命令或 shell 脚本。

答案1

您可以使用awk

$ awk -F= '{a[$1]++; if(a[$1]==1){print}}' A.txt B.txt  
A=x
B=y
C=z
D=q
E=r

解释

  • a[$1]++;:将第一个字段保存为数组中的键a,并将与该键关联的值加一。这意味着第一次看到某个键时(例如,第一次A=x),该值将为 1,但第二次则为 2。这让我们可以对唯一元素进行计数。

  • if(a[$1]==1){print}:如果第一个字段只出现过一次,则打印。

因为我们是B.txt在 后进行处理A.txt,所以 中的值A.txt是被保留的值。

相关内容