Использование SED для замены группы захвата шаблоном регулярных выражений - PullRequest
0 голосов
/ 18 декабря 2018

Мне нужна помощь с командой sed, которая, как я думал, поможет решить мою проблему.У меня в основном есть длинные текстовые файлы, которые выглядят примерно так:

>TRINITY_DN112253_co_g1_i2 Len=3873 path=[38000:0-183]
ACTCACGCCCACATAAT

Текстовые блоки ACT продолжаются, и затем появляются другие блоки текста, которые следуют той же схеме, за исключением текста после> отличаетсянемного по номерам.Я хочу заменить только эту часть заголовка (часть, сопровождаемую>) на все, вплоть до самой последней «_» команды sed, которая, на мой взгляд, выглядит логичной, выглядит следующим образом:

sed -i ‘s/>.*/TRINITY.*_/‘

Однако sed - этобуквально меняя каждый заголовок на TRINITY. * _ вместо того, чтобы захватывать блок, который я думал, что будетЛюбая помощь приветствуется!

(Также ... просто чтобы прояснить ситуацию, я подумал, что моя команда sed преобразует блок верхнего заголовка в это:

>TRINITY_DN112253_co_g1_
ACTCACGCCCACATAAT

1 Ответ

0 голосов
/ 18 декабря 2018

Это может помочь:

sed '/^>/s/[^_]*$//' file

Вывод:

>TRINITY_DN112253_co_g1_
ACTCACGCCCACATAAT

См .: FAQ по регулярным выражениям переполнения стека

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...