長さの異なる 2 つのファイルがあり、file2 は大きな参照ファイルで、そこからファイル 1 のデータを抽出します。
ファイル内で検索と置換を行うために通常微調整する awk の行がありますが、常に同じ列で検索と置換が行われます。
たとえば、file1 の $1 = file2 の $7 の場合、file1 の $1 を file2 の $2 に置き換えると、通常は次のようになります。
awk 'FNR==NR{a[$7]=$2;next}a[$1]{$1=a[$1]}1' file2 file1 > newfile
ただし、コーディングする方法を考えようとしています:
$2 of file1 = $2 of file2 の場合、$1 file1 を file2 の $1 に置き換えます。
しかし、上記のコードでは、どの $1 が「検索」を指し、どの $1 が「置換」を指しているのかわかりません。
file1 は次のようになります
0 rs58108140 0 0 G A
0 rs189107123 0 0 C G
0 rs180734498 0 0 C T
file2 は次のようになります
1 rs58108140 0 10583 G A 1:10583
1 rs189107123 0 10611 C G 1:10611
1 rs180734498 0 13302 C T 1:13302
望ましい出力は次のようになります。
1 rs58108140 0 10583 G A
1 rs189107123 0 10611 C G
1 rs180734498 0 13302 C T
助けてくれてありがとう。