sed в поиске сценариев bash

У меня есть следующая проблема относительно команды sed. Я хочу сделать следующее:

sed '1 d' filename.fa | sed "1i\>filename\n" > filename_Edited.fa 

где строка файла frist заменяется на «> filename». Это делается в 2 этапа: удаление первой строки, а затем вставка новой, которая содержит желаемый «текст». Команда работает так, как если бы она была напечатана непосредственно в консоли (без переменных). Однако мне нужна эта команда, интегрированная в следующий скрипт, где имя файла теперь зависит от переменной:

 #!/bin/bash CODE=`cut -c 7-21 Data.txt` cd ../FASTA_SEC/ for i in ${CODE} do sed '1 d' ${CODE}.fa | sed "1i\>${CODE}\n" > ${CODE}_Edited.fa done 

Я получаю следующую ошибку, когда этот скрипт запускается для каждой итерации цикла:

 try: line 8: ${CODE}_Edited.fa: ambiguous redirect 

Я не понимаю, что неправильно в sed sintaxis или в общем скрипте, порой он должен работать, но это не так. Любая подсказка?

Я также попытался запустить скрипт без частички, только выполнив команду sed, которая удаляет первую строку из текста:

 #!/bin/bash CODE=`cut -c 7-21 Data.txt` cd ../FASTA_SEC/ for i in ${CODE} do sed '1 d' ${CODE}.fa > ${CODE}_Edited.fa done 

Однако он снова возвращает прежнюю ошибку!

Спасибо за помощь!

**. fa известны как fasta, которые являются своего рода форматом обычного текста, используемым в последовательностях ДНК

One Solution collect form web for “sed в поиске сценариев bash”

Может быть, проще не использовать sed для prepend, а скорее cat :

 #!/bin/bash header=$(mktemp) scratch=$(mktemp) trap "rm -f $header $scratch" EXIT cd ../FASTA_SEC/ for CODE in $(cut -c 7-21 Data.txt); do echo ">${CODE}_" > $header if [[ -r "${CODE}.fa" ]]; then sed '1d' "${CODE}.fa" > $scratch cat $header $scratch > ${CODE}_Edited.fa fi done 
  • Заменить символ, кроме последних x входов
  • Как удалить повторяющиеся слова с суффиксами?
  • Извлеките уникальную строку из каждой строки, содержащей <string>
  • Удалите пробелы перед определенными символами
  • Цвет полосы в OS X с BSD sed (или любым другим инструментом)
  • любая команда, которая может форматировать html или xml из оболочки?
  • grep и sed в конкретных
  • Извлечь текст, включая parens
  • Команда UNIX для замены в разделителе в зависимости от положения разделителя
  • Как удалить пробелы в столбцах?
  • Введите количество совпадений и количество строк совпадения
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.