как печатать, если строка содержит определенный шаблон и не печатать, если она не содержит шаблон

">16RI1_0 M01230:42:000000000-AWMRD:1:1101:15012:1778 1:N:0:0 TATCCGGATTTACTGGGTGTAAAGGGAGCGTAGGCGGCCATGCAAGTCAGAAGTGAAAAC ">16RA2_1 M01230:42:000000000-AWMRD:1:1101:15923:1780 1:N:0:0 TTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTCTTAAGTCTGATGTGAAAGC ">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA ">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0 GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC 

Здравствуйте, у меня есть файл, содержащий такую ​​информацию. Я хочу напечатать все строки, начинающиеся с знака «>» и следующей строки, но есть условие, что строка, начинающаяся с знака «>», должна содержать букву V. Пожалуйста, помогите мне.

  • Создается ли раздел, созданный dd (и кэшем), мгновенно доступный для записи
  • Восстановление раздела после перераспределения
  • Файл /etc/ld.so.nohwcap отсутствует в Debian 7
  • Рекомендовать чтение для изучения конфигурации брандмауэров Linux для новичков?
  • Как работает `stdin` linux?
  • iostat - Что означает поле «воровать»?
  • Запуск vim на удаленной машине Linux «замерзает» OS X SSH-соединение
  • Как файлы tar с отсортированным порядком?
  • Возобновить перенос одного файла с помощью rsync
  • Почему средняя загрузка Linux сообщается как экспоненциальная скользящая средняя?
  • nc не работает и преуспевает
  • Bash конвертировать строку в массив строк?
  • 3 Solutions collect form web for “как печатать, если строка содержит определенный шаблон и не печатать, если она не содержит шаблон”

    С GNU sed (стандарт в системе Linux) вы можете получить строку заголовка (содержащую V любом месте на нем) и первую строку последовательности из файла fasta следующим образом:

     sed -n '/^>.*V/,+1p' sequence.fa 

    Это предполагает, что файл fasta правильно отформатирован.

    Параметр -n отключает вывод по умолчанию и /^>.*V/,+1p будет печатать любую строку заголовка с V в нем вместе с непосредственно следующей строкой.

    Я хочу напечатать все строки, начинающиеся с знака «>» и следующей строки, но есть условие, что строка, начинающаяся с знака «>», должна содержать букву V.

    Кажется, что этот grep работает:

     grep -A 1 '^">.*V' 

    Пример:

     grep -A 1 '^">.*V' file ">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA ">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0 GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC 

    Ты сказал:

    Я хочу напечатать все строки, начинающиеся с знака «>» и следующей строки, но есть условие, что строка, начинающаяся с знака «>», должна содержать букву V

    Это хорошая работа для awk:

     $ awk '/^">.*V/{print $0;getline line; print line}' input.txt ">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA ">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0 GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC 
    Linux и Unix - лучшая ОС в мире.