複数のテキストファイルから一意の項目を選択して出力ファイルに印刷するには?

複数のテキストファイルから一意の項目を選択して出力ファイルに印刷するには?

同様のデータを含む3つのファイルがあります。私はこの3つのファイルを読んで一意のエントリとその値を出力できるbashスクリプトが欲しいです。例:

1.txt
aceE    14
aceF    8
adhE    20
asnS    2
carB    2
dnaK    3
eno     2

2.txt
aceE    11
aceF    7
acnB    2
acrB    1
adhE    22
asnS    2
dapD    3

3.txt
aceE    16
aceF    10
adhE    18
aroK    2
asnS    3
dapD    4
dnaK    4

したがって、出力は次のようになります。

acnB    2
acrB    1
aroK    2
carB    2
eno     2

ベストアンサー1

GNUまたは互換の使用uniq-wオプションの場合):

sort {1,2,3}.txt | uniq -u -w5
acnB    2
acrB    1
aroK    2
carB    2
eno     2

編集:最初のフィールドの長さをより柔軟にするために、Guillermoのいくつかの方法を実装できます。

grep -f <(sort {1,2,3}.txt | cut -d' ' -f1 | uniq -u) <(sort {1,2,3}.txt)

入力ファイルの区切り文字では<tab>ないことがわかりました<space>。これは、入力ファイルを質問に貼り付ける方法で変更されました。 :-(
これは<tab>

grep -f <(sort {1,2,3}.txt | cut -f1 | uniq -u) <(sort {1,2,3}.txt)

おすすめ記事