sergioaraujo

 

grep

Page history last edited by Sérgio Luiz Araújo Silva 2 yrs ago

Os programas grep e egrep filtram o conteúdo de arquivos, a diferença é que o egrep aceita expressões regulares. Para fazer uma busca por um termo proceda assim:

grep -rn 'termo' /etc 
egrep -n '^sergio' /etc/passwd
O parâmetro '-n' indica que o grep ou egrep numerem a linha encontrada. O comportamento padrão do grep é imprimir as linhas que correspondem ao padrão buscado. No caso do egrep se acrescentar-mos o "H" ele retornará o nome de cada arquivo que contiver o padrão
egrep -rnH '^sergio' /etc/passwd
Usando o parâmetro "-i" a busca ignora maiúsculas e minúsculas, para suprimir as linhas que contém o padrão use o parâmetro "-v", ou seja, ele mostrará as linhas que não contém o padrão, útil para remover linhas de comentários. como abaixo:
cat /etc/services | egrep -v '^#' | less
cat /etc/services | egrep -v '^#' | sed '/^$/d'
Veja mais um exemplo (no caso logado como root) pois se aplica ao /etc que não dá permissão de acesso a todos os arquivos. Queria achar todos os arquivos em /etc que contivessem o meu nome:
egrep -rnH '.*sergio.*' /etc | less
opções interessantes de uso:
-r  ---> recursividade
-n  ---> mostra o número de linhas
-H  ---> mostra o nome do arquivo
-c  ---> contar número de linhas
No comando abaixo é feita uma listagem recursiva (e completa)
que exibe no começo de cada linha:
d  --> para diretórios
l  --> para links
-  --> para arquivos comuns
exemplo de uma linha do comando 'ls' com a opção '-l'
drwxr-xr-x 2 sergio sergio 4096 2006-06-19 19:08 bin
ls -lR | egrep '^d' -c
o grep acima filtra as linhas começadas com 'd', 
ou seja o '^d' pega as linhas que começam com a 
indicação de diretórios, depois faz uma contagem '-c'
!grep colorido
grep --color=always -nr "padrão" caminho

Comments (0)

You don't have permission to comment on this page.