O que é GREP no Linux e como você o usa?
Grep é um pequeno programa Unix para encontrar padrões correspondentes. Iniciado como um programa Unix, pode ser encontrado no Linux, bem como no Mac e no BSD. Ele pode ler praticamente qualquer texto, o que significa que pode ler a entrada de outros comandos ou pode abrir e examinar arquivos diretamente. Grep é extremamente útil, especialmente para procurar diretórios na linha de comando.
Com isso, por que não tentar um dos usos mais comuns do Grep, encontrar um arquivo em um diretório. Procure na pasta "~/Downloads" por imagens "jpg".
ls ~/Downloads | grep .jpg
Grep irá listá-los todos e destacar a parte ".jpg", pois é o que você procurou.
Você canaliza a saída (com o comando "|") de praticamente qualquer comando para grep
. Se você tiver um arquivo de texto simples, cat
e canalize o resultado para o Grep para encontrar uma palavra específica.
cat file.txt | grep word
O Grep imprimirá todas as linhas do arquivo contendo a palavra que você pediu para procurar.
Esqueça o caso
Sistemas do tipo Unix diferenciam maiúsculas de minúsculas, o que significa que “Ubuntu” é completamente diferente de “ubuntu”. Isso pode ser uma dor ao procurar por algo. Grep possui um sinalizador para eliminar o problema. Adicione o sinalizador -i
à sua pesquisa e o Grep ignorará maiúsculas e minúsculas.
ls ~/Downloads | grep -i Ubuntu
Pesquisar em um arquivo
Não seria tão conveniente precisar de cat
toda vez que você quisesse pesquisar um arquivo. Na verdade, você não. O Grep pode pesquisar os próprios arquivos. Passe o caminho para o arquivo e o Grep fará o resto.
grep -i word /path/to/file.txt
Pesquisas recursivas
Grep pode pesquisar mais de um arquivo ou diretório ao mesmo tempo. Esteja avisado: se você estiver procurando por nomes de arquivos, o Grep também pesquisará os arquivos por padrão. O sinalizador -r
diz ao Grep para pesquisar recursivamente.
ls ~/Downloads | grep -r .deb
Você também pode emparelhar isso com outras bandeiras. Você pode querer incluir o sinalizador -I
ao fazer pesquisas recursivas para evitar que o Grep procure em arquivos binários.
ls ~/Downloads | grep -iIr .deb
Encontre o oposto
Você também pode dizer ao Grep para procurar por tudo que não contém o padrão especificado. Isso seria bom nos casos em que você precisa encontrar um erro ou tem um diretório com muitos arquivos de um ou dois tipos.
grep -rv '192.168.1.110' /etc/nginx
Palavras e linhas
Também pode ser útil dizer ao Grep para procurar palavras ou linhas completas, em vez de qualquer coisa que contenha um determinado padrão. Imagine que você está procurando uma sequência de caracteres comuns como parte de uma palavra, mas precisa que ela esteja separada. Por exemplo, a palavra "isso". Obviamente, não haveria muitas vezes em que você realmente desejaria procurar um padrão como "isso", mas isso prova isso.
cat textfile.txt | grep -w it
Em vez de imprimir cada palavra que contém o padrão, o Grep imprimirá apenas a palavra sozinha. Ele faz a mesma coisa para linhas inteiras com o sinalizador -x
, então se você estiver procurando por uma frase ou uma única linha em um arquivo de configuração, isso pode realmente ajudar.
Se você estiver interessado em investigar tudo que o Grep pode fazer, execute man grep
em um terminal para obter a documentação completa. Este artigo abordou o básico e tudo o que você normalmente precisa desta ferramenta poderosa. Compartilhe conosco se você conhece algum uso poderoso do comando Grep.
Crédito da imagem: Shell script aponta pontos de interesse para coordenadas