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

">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. Пожалуйста, помогите мне.

  • Другой вопрос awk (ward) - подстановка подстроки с несколькими ключами
  • Как найти / grep, что находится между строкой1 и строкой2?
  • Возьмите подмножество файла, относящегося к отметке времени
  • Разделите элементы столбца на столбец с одним элементом
  • для петли над входными линиями
  • Как я могу поместить эту строчную манипуляцию в цикле, чтобы она продолжалась, пока нечего делать?
  • Преобразование данных в столбцы
  • Вставьте одиночные последовательные числа в начале каждой строки в текстовом файле с помощью Vim
  • 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 - лучшая ОС в мире.