Я хочу создать файл, в котором я могу искать и находить шаблон, который нужно изменить в файле Fasta. Команда ниже создает .sh сценарий со всей картины, что он должен соответствовать и изменения:Добавление опции sed для нечувствительности к регистру и замена строки символа в файле FASTA
tail -n +2 scaffold_names_2.txt | while read assemb gcenter refseq genbank ncbi; do echo -ne "sed 's/<$gcenter>/$genbank/g' | " >>script.sh; done
Мой файл выглядит следующим образом:
#Assembly Genome Center name RefSeq Accession.version GenBank Accession.version NCBI name
GeoFor_1.0 scaffold40 NW_005054297 JH739887 GPS_002009865
GeoFor_1.0 scaffold112 NW_005054298 JH739888 GPS_002009866
GeoFor_1.0 scaffold41 NW_005054299 JH739889 GPS_002009867
GeoFor_1.0 scaffold130 NW_005054300 JH739890 GPS_002009868
GeoFor_1.0 scaffold54 NW_005054301 JH739891 GPS_002009869
.sh выглядеть файл, как это:
sed 's/scaffold40/JH739887/g' | sed 's/scaffold112/JH739888/g' | sed 's/scaffold41/JH739889/g' |
...
Но, я хочу, чтобы шаблон был нечувствительным к регистру. Я хочу добавить -e
в команду sed 's/<$gcenter>/$genbank/g' | "
. Но когда я добавляю флаг, он не печатает в моем скрипте. Любые идеи почему?
tail -n +2 scaffold_names_2.txt | while read assemb gcenter refseq genbank ncbi; do echo -ne "sed -e 's/<$gcenter>/$genbank/g' | " >>script.sh; done
После того, как мой сценарий, я удалить последнюю трубу и поместить файл Fasta, что я хочу найти и изменить шаблон.
Конечная цель - заменить Scaffold###
, который вы видите в строке ниже, на JH######
.
>Scaffold410 275
TGCATTAATATGAGTGTGTGCTGCAAAAGTTCAGGTCATGGTCCGATCATACTTCACATTTTGGTAGCACTTTAAGCAGAGATCGGTTATCCCATTCTGTGGAAGACTCAACACTATCATAAGGTCCCACAGTTTTATTATCCCTCTGCCTCCCGGAATGCCCCCGGCAGTGAGGGGTACCATCTTCTCAGCAGTAAGGATATTCTTCAGGAGTTCCGTGTGAGCTTTCCCGGATTTAGTTCCATTTTTTAAATACTTCCCAATTCTTTGCTTTG
>Scaffold430 374
CTTTGTTAACTGAAAGAGCCTCTAAGTAGATGACCAGTGCTCAGTTAGTACAGTATGAATTTTGTTTAATGGAACAGGAAGATTTAGTATTGAGAAGCGGTTAAGGGTTTAACCCAGCCTCCTGTCTGAATGGACCTGAAGAGGGGGGCCGGGAAGAAACCCATGACTGCATTAAAGTGATAGATCTCCAGACATGGGCTAGGGAAGATTTACAAGACACTCCCTGGCCTGAGGGAGAAAATATGTTTATTGATGAGTCTTCAAGGGTGGCAGAAGGGAAGCGATTTACAGGATACACAATCATTAATGGAAGGAAATTAAAGGAAGGGGGGAGATTGTCACCCACCTGGTCAGTTCAGACAGCAGAGCTGTAT
Я использую команду bash для этого. Но даже после замены флага -e
он не работает.
Что вы ожидаемый результат? Кажется, он отлично работает на моей системе Ubuntu. –
Я думаю, что это только потому, что файл был добавлен: 'sed -e 's//JH739887/g' | sed -e 's//JH739888/g' | sed -e 's//JH739889/g' | ' –
О, вы не удалили первый скрипт.sh после того, как вы изменили свой звонок? –