Mettre à jour les valeurs d'un file en utilisant des informations provenant d'un autre file

Fichier 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 

Fichier 2:

 snp chr:pos rs201725126 1:10020 rs200579949 1:10055 rs62651026 1:10108 rs376007522 1:10109 rs796688738 1:10128 rs368469931 1:10139 

Sortie souhaitée:

 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 

Donc, je voudrais replace tous les rsID dans le file un avec chr: pos du file 2, en gardant toutes les autres lignes qui ont déjà chr: pos format inactif.

J'ai essayé cette command:

 awk 'NR==FNR{a[$1]=$2} NR>FNR{$2=a[$2];print}' file2.txt file1.txt > merged.txt 

Bien qu'il fusionne bien les rsID, je perds le format chr: pos existant, comme indiqué ci-dessous.

 P SNP: 0.266234 0.266234 0.340042 0.86724 1:10020 0.86724 1:10055 0.127269 

 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