15 de novembro de 2017

Pesquisando palavras e arquivos usando comando GREP no Linux

Por sidnei

Neste novo post iremos novamente abordar de forma mais direta o comando grep do linux, já temos em nossa base de conhecimento um post bem completo com diversos exemplos e explicações, se você ainda não viu basta acessar >>aqui<< . Podemos usar o grep no terminal para fazer buscas por linhas em arquivos de texto que atendam a uma determinada expressão de procura.

O grep pode ser utilizado 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

 

Obsevação: Todos os exemplos mostrados aqui são baseados em um caminho padrão para servidores com painel cPanel. Lembre-se que trata-se apenas de um caminho exemplo, se a sua pesquisa for feita em diretório corrente não é necessário informar esse caminho.

Pesquisar por nome de arquivo

Pesquisa simples, utilizando a saída do comando ls para o diretório /home/user_cpanel/public_html e procurando pelo arquivo com nome “site” somente dentro da pasta “public_html”.

 

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 public_html e suas sub-pastas.

 

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 ‘.

 

Agora a mesma pesquisa recursivamente usando “-R”, procurando dentro da pasta site e suas sub-pastas.

 

Post relacionado:  Detalhando upload em PHP com detalhes e passo a passo

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).

 

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.

Esperamos que esse post ajude e traga mais conhecimento sobre o imenso universo Linux.