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.