Редактирование заголовка файла в bash - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть файл, содержащий следующий заголовок.

LESlike5.fasta_LESlike5|6543350|2181116|74|Aca1|1.9e-49|167.1|567531|567602|1|1|1702592|1702805|1697592|1707805

Я не могу аннотировать файл в нашей собственной prokka из-за длинного заголовка. Итак, я хочу заголовок, подобный следующему:

LESlike5.fasta_1702592_1702805_1697592_1707805

Я понимаю, что команда sed можетработать, но я не могу удалить специальный символ '|'с помощью сед.Я пытался sed 's/|/' удалить, но я не работал.Как я могу редактировать заголовок?

1 Ответ

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

С помощью awk: используйте | и _ в качестве разделителя поля ввода (FS) и _ в качестве разделителя поля вывода (OFS) и печатайте первый ($1) и последние четыре столбца.$NF содержит последний столбец.

awk 'BEGIN{FS="[|_]"; OFS="_"} {print $1,$(NF-3),$(NF-2),$(NF-1),$NF}' file

Вывод:

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