在shell脚本中合并两个输出

时间:2013-09-18 14:45:03

标签: shell unix command-line merge

我输出了2个命令,如: 第一个cmd的操作:

A B
C D
E F
G H

第二个cmd的操作:

I J
K L
M B

我想合并两个输出,如果第二列中的值对于两个输出都相同,我将从第一个输出中获取入口集。 所以,我的输出应该是

A B
C D
E F
G H
I J
K L

//没有服用(M B)sice B已经存在于第一个条目(A B)中,因此优先考虑第一个输出

我可以使用shell脚本执行此操作,是否有任何命令?

2 个答案:

答案 0 :(得分:3)

您可以使用awk:

awk 'FNR==NR{a[$2];print;next} !($2 in a)' file1 file2

A B
C D
E F
G H
I J
K L

答案 1 :(得分:1)

如果条目的顺序不重要,您可以在第二列sort上使用uniquefy:

sort -u -k2 file1 file2

-u-k都在the POSIX standard

中指定

如果file1的第二列中有重复的条目,则无效。