O AWK pode fazer isso com intervalos de padrões, o que permite o uso de qualquer expressão regular:
echoer | awk '/pattern/,0'
imprimirá echoer
a saída começando com a primeira linha correspondente pattern
.
O AWK é baseado em padrões e geralmente é usado com um tipo de abordagem "se esse padrão corresponder, faça isso". “Esse padrão” pode ser um intervalo de padrões, definido como “quando esse padrão corresponder, comece a fazer isso até que outro padrão corresponda”; isso é especificado escrevendo dois padrões separados por vírgula, como acima. Os padrões podem ser correspondências de texto, como em /pattern/
, onde a linha atual é comparada com o padrão, interpretada como uma expressão regular; eles também podem ser expressões gerais, avaliadas para cada linha e consideradas correspondentes se o resultado for diferente de zero ou não vazio.
No AWK, a ação padrão é imprimir a linha atual.
Juntando tudo isso, awk '/pattern/,0'
procura as linhas correspondentes pattern
e, uma vez encontrada, aplica a ação padrão a todas as linhas até que a 0
condição corresponda (seja diferente de zero). awk '/pattern/,""'
funcionaria também.
O manual do Gawk entra em muito mais detalhes.