2

最初のコマンドの op のような 2 つのコマンドの出力があります。

A B
C D
E F
G H

2 番目のコマンドの op:

I J
K L
M B

両方の出力をマージしたいのですが、2 番目の列の値が両方の出力で同じである場合は、1 番目の出力からエントリ セットを取得します。したがって、私の出力は次のようになります。

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

// B は最初のエントリ (AB) に既に存在するため、(MB) を使用しないため、最初の出力が優先されます

シェルスクリプトを使用してこれを行うことはできますか? コマンドはありますか?

4

2 に答える 2

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
于 2013-09-18T14:50:59.817 に答える
1

エントリの順序が重要でない場合はsort、2 番目の列で一意にすることができます。

sort -u -k2 file1 file2

-uとの両方がPOSIX 標準-kで指定されています。

file1 の 2 列目に繰り返しエントリがある場合、これは機能しません。

于 2013-09-18T20:58:37.023 に答える