GREP – pesquisar palavras e arquivos no linux | Dica
Dica de hoje é sobre o comando grep do linux, basicamente podemos usar o grep no terminal para fazer buscas por linhas em arquivos de texto que atendam a uma determinada expressão de procura.
Podemos utilizar o grep em conjunto com o operador pipe “|” expandindo o poder desse comando, usando inclusive para procurar por nomes de arquivos em pastas e se adicionarmos “-R” podemos procurar em sub-pastas, ou seja, uma busca recursiva.
Sintaxe básica de comando grep
1 |
grep [parametros] expressao_procura [arquivo] |
Obsevação: Todos os exemplos estou usando caminho absoluto para os arquivos e diretórios, mas se a pesquisa for feita em diretório corrente não é necessário informar esse caminho.
Pesquisar por nome de arquivo
Pesquisa simples, concatenando a saída do comando ls para o diretório /var/www/html/ e procurando pelo arquivo com nome “site” somente dentro da pasta “html”.
1 |
ls /var/www/html/ | grep site |
Agora vamos fazer a mesma pesquisa recursivamente adicionando “-R” ao comando, ou seja, procurando pelo nome de arquivo com a palavra “site” dentro da pasta html e suas sub-pastas.
1 |
ls /var/www/html/ | grep -R site |
Pesquisar palavra dentro de arquivos
Pesquisando pela palavra “conexao” dentro do arquivo conexao.class.php, para pesquisas com apenas um termo utilizar aspas ” como delimitadores da expressão, dois termos ou mais utilizar apóstrofo ‘.
1 |
grep "conexao" /var/www/html/site/classes/conexao.class.php |
Agora a mesma pesquisa recursivamente usando “-R”, procurando dentro da pasta site e suas sub-pastas.
1 |
grep -R "conexao" /var/www/html/site/ |
Podemos pesquisar somente os arquivos que estão dentro do diretório “site”, basta adicionarmos um asterisco “*” ao final do comando (sub-pastas apenas terão seus nomes listados).
1 |
grep "conexao" /var/www/html/site/* |
Abaixo alguns parâmetros para personalizar as saídas do comando grep:
- -a, –text: trata arquivos binários como se fossem arquivos de texto.
- -c: imprime somente a contagem das linhas com expressão.
- -i: ignora a diferença entre letras maiúsculas e letras minúsculas.
- -I: exibe o nome do arquivo ao invés da saída normal do comando grep.
- -n: mostra o número de cada linha em arquivo com expressão.
- -s, –no–messages: não exibe mensagens de erro.
- -v: mostra todas as linhas de arquivo, exceto as linhas com expressão.
Bom pessoal com isso encerro mais uma dica rápida, postei aqui apenas o básico sobre o comando grep, esse link possui um material bem completo sobre as diversas opções e variações do grep, se gostarem dessa dica compartilhem nas redes sociais abaixo!
Até a próxima …