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

При использовании переменных в аргументах команды нельзя заключать их в простые кавычки.

При устранении неполадок в сценариях оболочки попробуйте выполнить команды одну за другой, ... это поможет вам сузить круг проблем.

sed -n "/part=$var/,/^$/p" conf.cfg
2
18.02.2017, 21:56
2 ответа

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

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

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

-1
27.01.2020, 22:19

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

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

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

2
27.01.2020, 22:19

Теги

Похожие вопросы