Я хочу заменить строки в целевом файле (target.txt) на строки в таблице поиска (lookup.tab), которая выглядит следующим образом.
Seq_1 Name_one
Seq_2 Name_two
Seq_3 Name_three
...
Seq_10 Name_ten
Seq_11 Name_eleven
Seq_12 Name_twelve
Файл target.txt представляет собой большой файл с древовидной структурой (формат Nexus). Это не организовано в столбцах.
Поэтому я использую следующую команду:
awk 'FNR==NR { array[$1]=$2; next } { for (i in array) gsub(i, array[i]) }1' "lookup.tab" "target.txt"
К сожалению, эта команда не берет всю длину элементов из первого столбца, так что Seq_1, Seq_10, Seq_11, Seq_12 заканчиваются как Name_one, Name_one0, Name_one1, Name_one2 и т. Д. ...
Как сделать команду awk более точной для правильной замены строк?