一致するID変数に基づいて値を変更する

一致するID変数に基づいて値を変更する

2つのファイルがあります。file16つの列があり、file22つの列があります。file1一致するID変数(両方のファイルの列1)に基づいて、列6の値を列2の値に置き換えたいと思います。file2

注:file2含まれているテーマはfile1.soより小さいため、残念ながら次のコマンドは機能しません。

awk 'NR==FNR{tmp[$1]=$2;next}{print $0,tmp[$1]}' file2 file1

file1良い:

HG00096 HG00096 0 0 0 -9
HG00097 HG00097 0 0 0 -9
HG00099 HG00099 0 0 0 -9
HG00100 HG00100 0 0 0 -9
HG00102 HG00102 0 0 0 -9

file2良い:

HG00096 2
HG00097 5
HG00098 5
HG00099 3
HG00100 3
HG00101 5
HG00102 3

私が生成したいファイルは次のとおりです。

HG00096 HG00096 0 0 0 2
HG00097 HG00097 0 0 0 5
HG00099 HG00099 0 0 0 3
HG00101 HG00100 0 0 0 5
HG00102 HG00102 0 0 0 3

ベストアンサー1

使用join:

join -j 1 -o 0,1.2,1.3,1.4,1.5,2.2 file1 file2

どこ:

  • -j両方のファイルの結合フィールドの定義
  • -o必要に応じて出力フォーマットを指定

おすすめ記事