AWK может сделать это с диапазонами шаблонов, что позволяет использовать любое регулярное выражение:
echoer | awk '/pattern/,0'
выведет echoer
вывод, начиная с соответствия первой строки pattern
.
AWK основан на шаблонах и обычно используется с подходом типа «если этот шаблон соответствует, сделайте это». «Этот шаблон» может быть диапазоном шаблонов, определяемых как «когда этот шаблон соответствует, начинайте делать это, пока этот другой шаблон не будет соответствовать»; это определяется записью двух шаблонов, разделенных запятой, как указано выше. Шаблоны могут быть текстовыми совпадениями, например /pattern/
, если текущая строка сверяется с шаблоном, интерпретируемым как регулярное выражение; они также могут быть общими выражениями, вычисляться для каждой строки и считаться совпадающими, если их результат ненулевой или непустой.
В AWK действием по умолчанию является печать текущей строки.
Собрав все это вместе, awk '/pattern/,0'
ищет совпадения строк pattern
и, как только он находит одну, применяет действие по умолчанию ко всем строкам до тех пор, пока 0
условие не совпадет (не равно нулю). awk '/pattern/,""'
будет работать тоже.
Руководство Gawk входит в гораздо более подробно.