我有 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
//不采用 (MB) sice B 已经存在于第一个条目(AB) 中,因此优先考虑第一个输出
我可以使用 shell 脚本来做到这一点,有什么命令吗?
我有 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
//不采用 (MB) sice B 已经存在于第一个条目(AB) 中,因此优先考虑第一个输出
我可以使用 shell 脚本来做到这一点,有什么命令吗?
您可以使用 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
如果条目的顺序不重要,您可以sort
在第 2 列进行唯一化:
sort -u -k2 file1 file2
两者-u
都在POSIX 标准-k
中指定
如果 file1 的第二列中有重复的条目,这将不起作用。