Шаблоны Sed и Order - PullRequest
       20

Шаблоны Sed и Order

0 голосов
/ 25 сентября 2018

У меня есть файл, содержащий мои целевые строки (начинаются с '>') ...

>lcl|1:c127-20 Ricardo3 phone

Я хочу получить:

>Ricardo3:127-20

Мои шаги: (1) Измените ':' с помощью '', (2) удалите строку 'c' и (3) получите первое и второе совпадения и напечатайте их в другом порядке, разделив ':' как '\ 2 [:] \ 1'.

Это мой код:

sed -e '/^>/s/:/ /' -e '/^>/s/c//' -e '/^>/s/.*\s\([A-Z_0-9a-z]*\)\s.*\[A-Z_0-9a-z].*/\2[:]\1/' file

Но я все еще получаю только:

>ll|1 127-20 Ricardo3 phone

У меня сложное время с регулярным выражением в последней структуре sed.Любая помощь будет очень полезна.

Спасибо

1 Ответ

0 голосов
/ 25 сентября 2018
$ sed -r 's/.*:c(\S*)\s+(\S*)\s.*/>\2:\1/' <<<">lcl|1:c127-20 Ricardo3 phone"
>Ricardo3:127-20 

вышеуказанная строка работает для заданного ввода.(GNU SED)

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