awk 'NR==FNR{a[$1]=$2; next} $2 in a {$2=a[$2]} {print}' file2.txt file1.txt
P SNP:
0.266234 1:11008
0.266234 1:11012
0.340042 1:13110
0.86724 1:10020
0.86724 1:10055
0.127269 1:1327
Arquivo 1:
P SNP:
0.266234 1:11008
0.266234 1:11012
0.340042 1:13110
0.86724 rs201725126
0.86724 rs200579949
0.127269 1:1327
Arquivo 2:
snp chr:pos
rs201725126 1:10020
rs200579949 1:10055
rs62651026 1:10108
rs376007522 1:10109
rs796688738 1:10128
rs368469931 1:10139
Saída desejada:
P SNP:
0.266234 1:11008
0.266234 1:11012
0.340042 1:13110
0.86724 1:10020
0.86724 1:10055
0.127269 1:13273
Então, eu gostaria de substituir todos os rsIDs no arquivo um com chr: pos do arquivo 2, mantendo todas as outras linhas que já tenham o formato chr: pos inativo.
Eu tentei este comando:
awk 'NR==FNR{a[$1]=$2} NR>FNR{$2=a[$2];print}' file2.txt file1.txt > merged.txt
Embora mescle bem os rsIDs, perco o formato chr: pos existente, como mostrado abaixo.
P SNP:
0.266234
0.266234
0.340042
0.86724 1:10020
0.86724 1:10055
0.127269