Добавление текста к существующей первой строке с помощью Sed - PullRequest
3 голосов
/ 13 октября 2009

У меня есть данные, которые выглядят так (формат FASTA). Обратите внимание, что in поставляется с блоком заголовка 2 ">" и последовательностью.

>SRR018006
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGN
>SRR018006
ACCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

Что я хочу сделать, это добавить текст (например, "foo" в заголовке>) получают:

>SRR018006-foo
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGN
>SRR018006-foo
ACCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

Есть ли способ сделать это с помощью SED? Предпочтительно встроенная модификация оригинальный файл.

Ответы [ 2 ]

7 голосов
/ 13 октября 2009

Это сделает то, что вы ищете.

sed -ie 's/^\(>.*\)/\1-foo/' file
3 голосов
/ 13 октября 2009

, судя по вашему предыдущему посту, вы также имеете опыт использования awk: вот решение awk.

# awk '/^>/{print $0"-foo";next}1' file
>SRR018006-foo
NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNGN
>SRR018006-foo
ACCCGCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

# awk '/^>/{print $0"-foo";next}1' file > temp
# mv temp file

если вы настаиваете на седе

# sed -e '/^>/s/$/-foo/' file
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...