私はこの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
sort file2.txt | join -a 1 file1.txt -
joinはソートされた入力が必要です。 「-」は、標準入力が2番目のファイルに使用されることを指定します。これにより、sortの出力を入力として使用できます。 「-a 1」は、最初のファイルの一致しない行が出力に含まれることを指定します。
あなたはjoinコマンドを使うことができます(ファイルをソートしておくのが良いでしょう)
join file1.txt file2.txt -a 1
awk
を使用すると、次のことができます。
awk '
NR==FNR { k[$1]=$2; next }
{ print $0, k[$1] }
' file2.txt file1.txt
注:このawk
ソリューションは、ソートされていない生の入力データでも機能します。追加の高価なプロセスは必要ありません。