我有两个文本文件,我想用file2替换id。这两个文件中的所有ID的顺序相同。
File1
>12_abc
ghfghfjgfhjgfjf
hgfjfgjgfjfgjgfjf
>13_def
ghfghgfgfgfghfjhf
nmbnmbhjgkjgjhggh
>14_ghi
uytghhuytuytuytuyt
ytrftyfrghfhgfgfgg
File2
>12_abc|10
>13_def|20
>14_ghi|30
Desired Output
>12_abc|10
ghfghfjgfhjgfjf
hgfjfgjgfjfgjgfjf
>13_def|20
ghfghgfgfgfghfjhf
nmbnmbhjgkjgjhggh
>14_ghi|30
uytghhuytuytuytuyt
ytrftyfrghfhgfgfgg
awk '{print} !(NR%2) {if ((getline < "File2.txt") > -1) print}' File1
答案 0 :(得分:2)
作为FASTA文件,这看起来很尴尬。这就是我的方法:
如果要按顺序替换名称:
awk '(NR==FNR){a[FNR]=$0;next}/^>/{print a[++c]; next}1' File2 File1 > File1.new
如果要根据内容替换名称:
awk -F '|' '(NR==FNR){a[$1]=$0;next}/^>/{print a[$0]; next}1' File2 File1 > File1.new