左(外部)結合[重複]

左(外部)結合[重複]

私のファイル:

file1.txt
 =========
 key1
 key1
 key1
 key1   
 key2
 key2   
 key3
 key3
 key3
 key4
 key4   

 file2.txt
 =========
 key1   22
 key2   23
 key3   24


 Expected Output :
 ==================
 key1   22
 key1   22
 key1   22
 key1   22    
 key2   23
 key2   23   
 key3   24
 key3   24
 key3   24

私が見つけたすべての解決策は文字列と繰り返し一致しません。

awk '{a[$1]=a[$1]" "$2} END{for(i in a)print i, a[i]}'
join -a 1

左外部結合を作成するには、このアプローチで何を修正する必要がありますか?

ベストアンサー1

Awk解決策:

awk 'NR==FNR{ a[$1]=$2; next }$1 in a{ $2=a[$1]; print }' file2.txt file1.txt

出力:

key1 22
key1 22
key1 22
key1 22
key2 23
key2 23
key3 24
key3 24
key3 24

または単にjoin注文する:

join -o1.1,2.2 file1.txt file2.txt

おすすめ記事