Para nós, administradores de sistemas, com a necessidade de visualizar arquivos e processos de modo eficiente, nada melhor que utilizar a dupla | “pipe” e grep “buscador de conteúdo”. O comando grep serve para procurar strings dentro de pastas ou arquivos, sem ter que visualizar todo o arquivo ou mesmo editá-lo. Veja um exemplo.
Um arquivo com o nome telefone.txt contém os seguintes dados:
Bruno 55123456
Fernando 55237982
Joao 55879087
Paula 45467898
Thalita 23789755
Para saber o telefone do Joao não precisamos editar o arquivos utilizamos o grep da seguinte forma:
$grep Joao telefone.txt
E aparece o resultado:
Joao 55879087
O comando grep tem vários argumentos para facilitar a busca de conteúdo como por exemplo:
grep -<argumento>
-i -> tira o case sensitive, busca por letras maiúsculas e minúsculas.
-v -> não busca a string selecionada, ex: procure tudo menos o Joao.
Agora vamos juntar nosso amigo grep com o pipe, essa dupla é muito utilizada quando precisamos filtrar a saída de um comando, veja o exemplo:
ps -ef | grep -i ftp
Neste comando estamos listando todos os processos do servidor porém o comando grep vai filtrar e mostrar na tela somente o processo com o nome FTP.
ps aux | grep httpd
Com esse comando você exibe na tela todos os processos do httpd (servidor web) ativos na sua máquina.
E se você quisesse somente os PIDs? Simples:
ps aux | grep httpd | awk {‘print $2’}
Bom, estes são exemplos simples, mas a partir do momento que você se acostumar com a idéia, vai achar diversas funções para isso.
Podemos visualizar informações de arquivos também utilizando o pipe e o grep como abaixo:
cat /home/usuario/telefone.txt | grep Bruno
ou procurar todos menos o Bruno:
cat /home/usuario/telefone.txt | grep -v Bruno
Bom agora que você ja aprendeu um pouco do comando grep não tenha dó de usar e para mais detalhes digite no shell o comando man grep.
Abraços e até a próxima.
Cleuber