あるファイルから「キー属性」エントリを収集し、別のファイルのキーリストに追加します。

あるファイルから「キー属性」エントリを収集し、別のファイルのキーリストに追加します。

以下のように2つのファイルを受け取りました。最初のファイルには次のキーが含まれています。

1
2
3

2番目のファイルには、関連する単一の項目を持つキーが含まれています。

1  aa
2  ab 
3  ac
2 ad
1 ae
2 af 

同じキーに属するすべての項目を収集し、最初のファイルで定義された順序で1行に印刷したいと思います。

1 aa ae 
2 ab ad af
3 ac 

誰でも助けることができますか?

ベストアンサー1

次のことを使用してこれを行うことは実際には可能ですが、以下にmiller基づくawk解決策を考えました。

awk 'NR==FNR{if ($1 in map) map[$1]=map[$1] OFS $2; else map[$1]=$2; next}
     {print $1,map[$1]}' file2.txt file1.txt

これにより、2番目のファイルが最初に処理され、同じ「キー」に関連するすべての「値」が収集されます。次に、最初のファイルを処理して各キーの「値」リストを出力します。

おすすめ記事