あるファイルの内容を繰り返し検索し、別のファイルのキーで置き換えます。

あるファイルの内容を繰り返し検索し、別のファイルのキーで置き換えます。

あるファイルを入力として使用して別のファイルを見つけて置き換える必要があります。次のコマンドはこれを行いますが、各行の最初の列に対してのみ実行されます。すべての列に対してこれが発生するはずです。

awk -F',' 'NR==FNR{a[$1]=$2} NR>FNR{$1=a[$1];print}' OFS=',' file1 file2 > fileout

2つのファイルは次のとおりです。

ファイル1(キー):

0,name0
1,name1
2,name2
3,name3
4,name4

ファイル2:

23,45,0
41,1,2,4
4,5,22,100
10,20,31,51,1
33,3
16,111,3

出力は次のようになります。

23,45,name0
41,name1,name2,name4
name4,5,22,100
10,20,31,51,name1
33,name3
16,111,name3

ベストアンサー1

これは働きます:

awk -F',' 'NR==FNR{a[$1]=$2} NR>FNR{for (i=1;i<=NF;i++) $i=a[$i];print}' OFS=',' file1 file2 > fileout

ありがとう

おすすめ記事