Поскольку у вас уже есть правильный ответ, это не очередной ответ, а небольшое предложение для фактической операции.
Я думаю, что написание команды sed
в строке может быть грязной работой. Как насчет подготовки справочной таблицы, которая описывает замену и заменитель в строке в формате csv, например:
table.txt
Simple_repeat/Satellite/Y-chromosome,Simple_repeat/Satellite
Unknown/Unknown/Y-chromosome,Unknown/Unknown
DNA/DNA/TcMar,DNA/TcMar
DNA/DNA/Crypton,DNA/Crypton
DNA/DNA/PIF-Harbinger,DNA/PIF-Harbinger
DNA/DNA/CMC-Chapaev-3,DNA/CMC-Chapaev-3
SINE/SINE/RTE,SINE/RTE
Тогда вы может выполнить следующий скрипт awk
для замены строк:
zcat PteBra.fa.align.gz | awk -F, '
NR==FNR {repl[$1] = $2; next}
{
for (r in repl) gsub(r, repl[r])
print
}
' table.txt - > PteBra.fa.align.corrected
Надеюсь, это поможет.