Extrair texto entre duas palavras usando expressão regular (SED)

Pode ser interessante para administradores de redes, de banco de dados ou para outras finalidades, selecionar uma parte de um texto ou log baseada em um padrão de repetição de texto, captando todo o texto que estiver entre duas palavras.

Segue exemplo de uso.

$cat arquivo.txt
inicio
Cabra
Boi
Cachorro
final



cat arquivo.txt | sed -n '/Cabra/,/Cachorro/p'
Cabra
Boi
Cachorro



Para lançar o resultado em um arquivo:
cat arquivo.txt | sed -n '/Cabra/,/Cachorro/p' > resultado.txt

Observação:
Se você criou o arquivo txt no Windows, talvez seja necessário copiar seu conteúdo para um novo arquivo no Linux, pois os marcadores de final de linha do Windows e do Linux são diferentes, podendo fazer com que o SED não funcione.
Remova também qualquer linha em branco no começo do arquivo.

Fontes:
http://stackoverflow.com/questions/13242469/how-to-use-sed-grep-to-extract-text-between-two-words
http://www.grymoire.com/Unix/Sed.html#uh-39

Comentários

Postagens mais visitadas deste blog

Lava-louças Brastemp BLE20 - RESOLVIDO - Piscando luzes Iniciar e enxaguar/Erro ao jogar água fora

Microsoft Print to PDF não aparece na lista de impressoras nos programas