web-dev-qa-db-ja.com

2つのファイルをマージする

私はこのfile1.txtを持っています

deiauk 9
kespaul 8
luktol 7 
titkur 6

その他のfile2.txt

kespaul b
deiauk a 

そして、私は最初の値で両方のファイルを1つにマージしたいので、私の結果は

deiauk 9 a
kespaul 8 b
luktol 7 
titkur 6
5
user3334375
sort file2.txt | join -a 1 file1.txt -

joinはソートされた入力が必要です。 「-」は、標準入力が2番目のファイルに使用されることを指定します。これにより、sortの出力を入力として使用できます。 「-a 1」は、最初のファイルの一致しない行が出力に含まれることを指定します。

2
bgvaughan

あなたはjoinコマンドを使うことができます(ファイルをソートしておくのが良いでしょう)

join file1.txt file2.txt -a 1
4
Romeo Ninov

awkを使用すると、次のことができます。

awk '
  NR==FNR { k[$1]=$2; next }
  { print $0, k[$1] }
' file2.txt file1.txt

注:このawkソリューションは、ソートされていない生の入力データでも機能します。追加の高価なプロセスは必要ありません。

3
Janis