列の一致と置換

列の一致と置換

スペースで区切られたフィールドを持つ2つの非常に大きなテキストファイルがあります。

ファイル1

527858  51  2   27.92464882 8.63E-07
570289  82  2   30.12532071 2.87E-07
571034  90  2   29.26089611 4.43E-07
571033  90  2   28.56723908 6.26E-07
452403  104 2   28.27577506 7.24E-07
351390  100 2   28.16226794 7.67E-07
527858  50  2   27.92464882 8.63E-07

ファイル2

527858  rs435           
570289  rs564           
571034  rs654           
571033  rs345           
452403  rs665           
351390  rs787           
527858  rs435           

出力:

rs435   51  2   27.92464882 8.63E-07
rs564   82  2   30.12532071 2.87E-07
rs654   90  2   29.26089611 4.43E-07
rs345   90  2   28.56723908 6.26E-07
rs665   104 2   28.27577506 7.24E-07
rs787   100 2   28.16226794 7.67E-07
rs435   50  2   27.92464882 8.63E-07

file1とfile2の最初の列を比較し、file1の最初の列をfile2の2番目の列の名前置き換えます。

ベストアンサー1

頑張ります

awk 'FNR==NR { F2[$1]=$2 ; next } $1 in F2 {$1 = F2[$1] ; print } ' File2 File1

どこ

  • FNR==NR { F2[$1]=$2 ; next }File1に値を保存します。
  • $1 = F2[$1]キーの交換

おすすめ記事