1つのファイルに保存されている名前を2番目のファイルに保存されている番号に割り当てる

1つのファイルに保存されている名前を2番目のファイルに保存されている番号に割り当てる

2つのファイルがあります。

>head(fileA)
   2    1   544.8  1279.2   1.0603  3.2460  0.0542 
   3    1   546.2  1277.8   1.0463  3.2460  0.0553 
   3    2   543.9  1280.1   0.1652  3.2460  0.0177 
   4    1   543.7  1280.3   1.0819  3.2460  0.0527 
>head(fileB)
1 Coly
2 Mony
3 Fong
4 Wow
5 Poly

次の出力を得るために、fileBの名前をfileAの数に割り当てたいと思います。

   2 Mony   1 Coly   544.8  1279.2   1.0603  3.2460  0.0542 
   3 Fong   1 Coly  546.2  1277.8   1.0463  3.2460  0.0553 
   3 Fong   2 Mony  543.9  1280.1   0.1652  3.2460  0.0177 
   4 Wow    1 Coly   543.7  1280.3   1.0819  3.2460  0.0527 

正直なところ、何も試すことはできません。これを行う方法を見つけるのに多くの時間を費やしました。私が考えることができる唯一のことは、fileAの数を変数に割り当て、次に変数が見つかるたびにfileBの内容をここに追加することです。残念ながら何をすべきかわかりません。

提案、リンク、指示がありますか?ありがとう

ベストアンサー1

Bashのread、grep、およびtrを使用できます。

cat fileA | while read i j k ; do
  grep "^$i\W" fileB | tr '\n' ' '
  grep "^$j\W" fileB | tr '\n' ' ' 
  echo $k 
done

おすすめ記事