同様のデータを含む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)