Se você tem uma versão do grep
que suporta o PCRE, você pode usar o seguinte comando para fazer o que quiser:
$ grep -Pzo 'how.*\n.*catch' file
how are you doing sir?
when are you going to arrive at the SBAHN platform to catch
Os interruptores:
-
-P
- ativa PCRE - Expressões regulares compatíveis com Perl -
-z
- Emita um byte zero (o caractere NUL ASCII) em vez do caractere que normalmente segue um nome de arquivo. Por exemplo,grep -lZ
gera um byte zero após cada nome de arquivo em vez da nova linha usual. Essa opção torna a saída não ambígua, mesmo na presença de nomes de arquivos que contenham caracteres incomuns, como novas linhas. Essa opção pode ser usada com comandos comofind -print0, perl -0
,sort -z
exargs -0
para processar nomes de arquivos arbitrários, mesmo aqueles que contêm caracteres de nova linha. -
-o
- Imprime apenas as partes correspondentes (não vazias) de uma linha correspondente, com cada uma dessas partes em uma linha de saída separada.