あるファイルから別のファイルに対応する値を見つけて、後者のファイルのすべての内容を印刷する方法は?

あるファイルから別のファイルに対応する値を見つけて、後者のファイルのすべての内容を印刷する方法は?

次の種類のファイル(file_1)があります。

4.96798703303702 "YPL223C"
3.5545141639441 "YPL281C"
4.50082973953956 "YML042W"
5.43613972089831 "YMR107W"
4.81971559885503 "YBR072W"
4.31478270112112 "YDL204W"
3.66402710414498 "YBR117C"
5.79159144125629 "YMR175W"
3.02190667031174 "YMR250W"

file_2で特派員を見つけたいです。

YPL223C
YBR117C
YPL223C
YBR117C
YMR175W
YMR175W

次に、file_1の最初の列の値を次のようにfile_2の新しく作成された2番目の列にコピーしようとします。

4.96798703303702 "YPL223C"
3.66402710414498 "YBR117C"
4.96798703303702 "YPL223C"
3.66402710414498 "YBR117C"
5.79159144125629 "YMR175W"
5.79159144125629 "YMR175W"

を使ってみましたが、grep -F -f file_2 file_1重複を考慮せずに印刷のみを検討してください。

4.96798703303702 "YPL223C"
3.66402710414498 "YBR117C"
5.79159144125629 "YMR175W"

重複したコンテンツを印刷する方法はありますか?

ベストアンサー1

どうですか?

awk '
  NR==FNR {a[substr($2,2,length($2)-2)] = $0; next} 
  {print a[$1]}
' file_1 file_2
4.96798703303702 "YPL223C"
3.66402710414498 "YBR117C"
4.96798703303702 "YPL223C"
3.66402710414498 "YBR117C"
5.79159144125629 "YMR175W"
5.79159144125629 "YMR175W"

おすすめ記事