Заменить идентификаторы из file1 на идентификаторы из file2 - PullRequest
0 голосов
/ 03 января 2019

У меня есть два текстовых файла, и я хочу заменить id из file1 на file2.Все идентификаторы в одном и том же порядке в обоих файлах.

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

1 Ответ

0 голосов
/ 03 января 2019

Это выглядит неловко, как файл 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
...