Регулярные выражения (grep), соответствующие повторяющемуся двухбуквенному шаблону

Я хочу использовать регулярное выражение, которое будет соответствовать шаблону «ATATAT» (любой длины) и / или «GCCGCCGCC» (снова любой длины) в текстовом файле. У меня есть только четыре варианта, и один из них должен работать, но я пробовал их все в текстовом файле, содержащем эти шаблоны несколько раз. Но любой из приведенных ниже кодов не возвращает ничего или заканчивается ошибкой: «grep: Недопустимая обратная ссылка». Может быть, я не должен использовать grep?

  • [ATGC] {2,}
  • ([ATGC] {2,}) \ 1+
  • ([ATGC] {2,}) {2}
  • ([ATGC]) \ 1+

В основном, код, который я использую, следующий:

grep 'one_of_the_patterns_above' DNA_sequence_file.fasta 

И файл выглядит примерно так:

 >sampled sequence 1 consisting of 500 bases. GCAAAGTAGCCGAGGTCAGGGCATGTCAATGATAGCGCGAAAAGGTCACCACGAGAAGCG GCACTCGGCCACGGATTGGTGGCACTTCATATGGAAACGCGACGACCGATAAAAACACAA CGAAACCCAATTGGAATGAGATTTTCCTGAAACCGCAGCGAACCCAACCAAGCGGGAATA AAGTCGGGAAGTCTAAACGAGATTAGCAGAATCCACCTCAGAATGACTGATGCCATGTAG GCGCAGCAATAGATTACCGAAAGAGAAACACAGCAACGGATACATACAACTCAAGGGAAG AGCACCTTTCGCTGAGAGGAGACGCCTTACAAACTATCCAGGGGTTTGAACAAGACAGGT CGAAAAGCGGCCCTCTTCACAACCAGGTCAAGCGCGACTCGAGACAAGTATTCCCAAAGT CCAAAAAAGAATCCTACAGAATCCCATCAAAGCATTTGTAGAAAGACATGGCCTACCAGC TGCGCAAAGGACACATTACC 

  • Как сделать OR grep (с разными настройками GREP_COLOR)
  • Запуск find & grep и включение пути в выходной файл
  • Как искать файл для каждой записи в списке и печатать новый файл для каждой записи
  • grep и sed в конкретных
  • Есть ли способ сгладить папку и показать все строки, содержащие символы не-ascii?
  • возможно ли добавить запятую в этот SQL?
  • Распечатайте строку в stdout, которая соответствует выражению, если вывод содержит другое выражение
  • Рекурсивно найти файлы, которые имеют процент общих линий
  • 2 Solutions collect form web for “Регулярные выражения (grep), соответствующие повторяющемуся двухбуквенному шаблону”

    Похоже, вы хотите, чтобы совпадение «AT» повторялось по крайней мере дважды, или, в другом примере, «GCC» повторялось по крайней мере дважды. Это будут, соответственно:

     (AT){2,} (GCC){2,} 

    Обратите внимание, что вам придется использовать grep -E для соответствия этих шаблонов. (Существует не один, последовательный синтаксис регулярных выражений, которые одинаково работают на разных инструментах, поэтому вам, возможно, придется адаптироваться в зависимости от того, что вы в конечном итоге используете.)

    Все шаблоны плохие, они соответствуют любому ATGC в любом порядке. Правильное регулярное выражение:

     ^((AT)*|(GCC)*)$ 

    Это то, что вы написали.

    Linux и Unix - лучшая ОС в мире.