Intereting Posts
Последовательная программа не отвечает при загрузке «Для файла в цифрах» вместо «в алфавитном порядке»? Как обновить Apache, чтобы позволить Pseudostreaming на CENTOS 5.5 & WHM Ошибка файла conio.h Показывать список файлов в текущем каталоге во время навигации? (Экран, Linux) Сжатие и удаление исходного каталога с ограниченным хранилищем Являются ли Iptables глобальными или пользовательскими? При установке виртуального бокса на 64-разрядную машину kali linux 2.0 мне нужно установить среду chroot? Использовать pdf-файл в качестве обоев получив сообщение «из раздела» после установки GRUB 2. Что происходит? Создание логического тома с использованием не LVM-раздела Настройка initcwnd и initrwnd для постоянного запуска при перезагрузке сетевого менеджера GRUB2 с файловой системой FAT32 на внешнем жестком диске? Какие-либо другие параметры файловой системы? Отключить atime и diratime на USB-накопителе с udev Symlink все подкаталоги в каталоге в другой каталог

Команда sed и форматирование одной строки

Мне нужна помощь в создании этих заголовков:

'>>tr|G1PEZ0|G1PEZ0_MYOLU Uncharacterized protein (Fragment) OS=Myotis lucifugus GN=SNCG PE=4 SV=1 

в это:

 '>G1PEZ0_MYOLU 

Я сдался. Я не могу сделать это путем проб и ошибок. Пожалуйста, проигнорируйте апостроф в начале.

Как насчет этого:

 str='>>tr|G1PEZ0|G1PEZ0_MYOLU Uncharacterized protein (Fragment) OS=Myotis lucifugus GN=SNCG PE=4 SV=1' echo "$str" | sed -e 's/ .*//' -e 's/.*|//' -e 's/^/>/' 

Это использует 3 отдельные подстановки – удаляет все из 1-го места на линии и удаляет все до последнего | на линии, и положите a > назад как первый символ строки.

Это также можно сделать с помощью cut :

 input=">>tr|G1PEZ0|G1PEZ0_MYOLU Uncharacterized protein (Fragment) OS=Myotis lucifugus GN=SNCG PE=4 SV=1" echo "$input" | cut -d" " -f1 | cut -d"|" -f3 | sed "s/^/>/" 

С tr и cut :

 tr ' |' '>>' <input |cut -d\> -f1,6 

… который tr аннулирует все пробелы и | трубы в > прямые углы, а затем cut из результирующего > -d исключенных – только 1-й и 6-й.

С sed …

 sed -n 'y/ /\n/;s/.*|/>/;P' <input 

Который также y/// преобразует все пробелы в \n ewlines, тогда s/// Ъ-──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── pipe в одиночный > затем P rints только до первого \n ewline в пространстве шаблонов.