GEEKS

Como usar o grep para exibir nomes de arquivos e números de linha antes de combinar as linhas

Como usar o grep para exibir nomes de arquivos e números de linha antes de combinar as linhas

grep é um utilitário Linux comumente usado para pesquisar o conteúdo do arquivo ou qualquer entrada passada para ele. Ao pesquisar em vários arquivos, é útil exibir o nome do arquivo e os números de linha, especialmente ao usá-lo para automatizar em scripts de shell.



Exibindo nomes de arquivos com grep

Por padrão, se você passar vários arquivos para grepele será exibido filename: antes da linha correspondente para maior clareza. Você pode realmente desativar esse comportamento com o -h flag, que nunca exibirá nomes de arquivos:

No entanto, se você passar apenas um arquivo para grep, ele não exibirá os nomes dos arquivos por padrão. Isso pode ser um problema ao automatizar com scripts de shell, pois você pode não saber quantos arquivos estão em um diretório e pode interromper a automação dependendo do nome do arquivo estar lá.

o correção simples é usar as maiúsculas -H bandeiraque faz o oposto de -h e sempre ativará os nomes dos arquivos, não importa o que aconteça, mesmo com apenas um arquivo passado como entrada.

grep -H "foo" report

o -H sinalizador tem outro efeito inesperado, mas útil – quando combinado com a entrada de stdincomo tubos Unix, ele imprimirá (usual enter): no lugar do nome do arquivo.

Exibindo números de linha com grep

Você também pode usá-lo em conjunto com o -n flag para obter o número da linha:

grep -Hn "foo"

Um hack compatível com POSIX

o -H bandeira em grep não é compatível com POSIX e não está disponível em alguns sistemas operacionais baseados em Unix mais obscuros. Felizmente, há um hack que você pode usar, passando /dev/null como uma entrada de segundo arquivo falso para grepo que o leva a pensar que existem vários arquivos:



Fonte da Notícia: www.howtogeek.com

Artigos relacionados

Botão Voltar ao topo