grep only matching

Em: 08/08/2008 Tags: Referencie do seu blog (Trackback)

Na maioria das vezes uso o grep para casar uma expressão regular com as linhas de um arquivo, e nesse caso quero que o programa mostre na saída as linhas inteiras onde o match ocorreu. Esse é o comportamento padrão do grep. Hoje eu precisei fazer algo diferente: extrair de um documento XHTML uma URL, que eu sabia que formato teria, mas não exatamente como ela era. Escrever a expressão regular que casava com a URL foi simples. No entanto, o que eu queria era que o grep não me retornasse a linha onde havia uma ocorrência, mas a ocorrência em si. Você pode alcançar esse efeito com a opção -o (only matching).

Exemplo:

$ cat arquivo
joao tem 1 filho
maria não tem filhos

$ grep '[0-9]' arquivo
joao tem 1 filho

$ grep -o '[0-9]' arquivo
1

Artigos relacionados:

Escreva um comentário (utilize o formato Markdown)