Aqui estão 31 exemplos úteis de comandos grep no Linux/Unix junto com suas explicações e cenários de uso:
1. Procure um texto específico em um arquivo: ```
grep nome do arquivo “texto de pesquisa”
```
Explicação :Imprime as linhas que correspondem ao "texto de pesquisa" do nome de arquivo especificado.
Exemplo :
```
grep "erro" /var/log/system.log
```
Este comando procura todas as linhas que contêm “erro” no arquivo de log do sistema.
2. Pesquise um texto específico recursivamente em um diretório: ```
grep -r "texto de pesquisa" nome do diretório
```
Explicação :executa uma pesquisa recursiva por "texto de pesquisa" no diretório especificado e em todos os seus subdiretórios.
Exemplo :
```
grep -r "configuração" /etc/
```
Este comando procura recursivamente todos os arquivos que contêm a palavra "configuração" no diretório "/etc/".
3. Procure por linhas que correspondam a uma expressão regular: ```
grep -E nome do arquivo "padrão regex"
```
Explicação :usa expressões regulares para procurar linhas que correspondam ao padrão especificado.
Exemplo :
```
grep -E "^[0-9]{4}-[0-1]{1}[0-9]{1}-[0-3]{1}[0-9]{1} .*" acesso.log
```
Este comando usa uma expressão regular para localizar todas as linhas no arquivo "access.log" que começam com um formato de data (AAAA-MM-DD seguido de uma hora).
4. Conte o número de linhas correspondentes: ```
grep -c nome do arquivo “texto de pesquisa”
```
Explicação :fornece uma contagem das linhas que correspondem ao "texto de pesquisa" no nome de arquivo especificado.
Exemplo :
```
grep -c "falhou" /var/log/auth.log
```
Este comando conta quantas vezes a palavra "failed" aparece no arquivo "/var/log/auth.log".
5. Imprima as linhas correspondentes com números de linha: ```
grep -n nome do arquivo "texto de pesquisa"
```
Explicação :exibe as linhas correspondentes junto com seus números de linha no nome de arquivo especificado.
Exemplo :
```
grep -n "aviso" /var/log/mensagens
```
Este comando mostra os números de todas as linhas que contêm a palavra "warning" no arquivo "/var/log/messages".
6. Ignore a distinção entre maiúsculas e minúsculas na pesquisa: ```
grep -i nome do arquivo "texto de pesquisa"
```
Explicação :executa uma pesquisa sem distinção entre maiúsculas e minúsculas por "texto de pesquisa" no nome de arquivo especificado.
Exemplo :
```
grep -i "Erro" /var/log/system.log
```
Este comando procura ocorrências em maiúsculas e minúsculas da palavra "Erro" no arquivo de log do sistema.
7. Exclua linhas que correspondam a um texto específico: ```
grep -v nome do arquivo "excluir texto"
```
Explicação :Imprime apenas as linhas que não correspondem ao "exclude-text" no nome do arquivo especificado.
Exemplo :
```
grep -v "INFO" /var/log/mensagens | grep "ERRO"
```
Este comando primeiro exclui linhas contendo "INFO" do arquivo "/var/log/messages" e, em seguida, procura linhas contendo "ERROR" na saída restante.
8. Procure um padrão e imprima o contexto anterior: ```
grep -B "num" "texto de pesquisa" nome do arquivo
```
Explicação :Imprime "num" linhas antes do "texto de pesquisa" correspondente no nome de arquivo especificado.
Exemplo :
```
grep -B 3 "mensagem_erro" /var/log/syslog
```
Este comando mostra as 3 linhas antes de cada linha contendo "error_message" no arquivo de log do sistema.
9. Procure um padrão e imprima o seguinte contexto: ```
grep -A nome do arquivo "num" "texto de pesquisa"
```
Explicação :Imprime "num" linhas após o "texto de pesquisa" correspondente no nome de arquivo especificado.
Exemplo :
```
grep -A 5 "login_com sucesso" /var/log/auth.log
```
Este comando imprime 5 linhas após cada linha contendo “successful_login” no arquivo de log de autenticação.
10. Imprima as linhas correspondentes com nomes de arquivos: ```
grep -H "texto de pesquisa" *
```
Explicação :exibe as linhas correspondentes junto com os nomes dos arquivos que as contêm ao pesquisar vários arquivos.
Exemplo :
```
grep -H "aviso" /var/log/*.log
```
Este comando procura a palavra "warning" em todos os arquivos de log localizados no diretório "/var/log/" e imprime as linhas correspondentes junto com os nomes dos arquivos.
11. Imprima apenas a parte correspondente das linhas: ```
grep -o nome do arquivo "padrão correspondente"
```
Explicação :Imprime apenas a parte das linhas que corresponde ao "padrão de correspondência" especificado no nome de arquivo fornecido.
Exemplo :
```
grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9] ]\{1,3\}" acesso.log
```
Este comando extrai e imprime apenas os endereços IP das linhas do arquivo “access.log”.
12. Use o operador OR para pesquisar vários padrões: ```
grep -E "padrão1 | padrão2" nome do arquivo
```
Explicação :procura linhas que correspondam a "pattern1" ou "pattern2" no nome de arquivo especificado.
Exemplo :
```
grep -E "falha | sucesso" /var/log/auth.log
```
Este comando procura linhas contendo a palavra "failed" ou a palavra "bem sucedido" no arquivo de log de autenticação.
13. Sair após a primeira partida: ```
grep -m 1 nome do arquivo "texto de pesquisa"
```
Explicação :interrompe a pesquisa e imprime apenas a primeira linha correspondente no nome de arquivo especificado.
Exemplo :
```
grep -m 1 "erro crítico" /var/log/messages
```
Este comando imprime apenas a primeira linha que contém o texto "erro crítico" no arquivo "/var/log/messages".
14. Imprima o número da primeira linha correspondente: ```
grep -b nome do arquivo “texto de pesquisa”
```
Explicação :exibe o deslocamento de bytes da primeira linha correspondente no nome de arquivo especificado.
Exemplo :
```
grep -b "servidor inicial" /var/log/syslog
```
Este comando imprime a posição do byte no arquivo onde se encontra a linha "iniciando servidor".
15. Pesquise dentro de arquivos compactados (.gz): ```
zgrep "texto de pesquisa" *.gz
```
Explicação :Permite pesquisar em arquivos ".gz" compactados sem a necessidade de descompactá-los primeiro.
Exemplo :
```
zgrep "mensagem_erro" /var/log/*.gz
```
Este comando procura por "error_message" em todos os arquivos ".gz" localizados no diretório "/var/log/" sem descompactá-los.
16. Imprima o nome do arquivo correspondente se houver correspondência: ```
grep -l "texto de pesquisa" *
```
Explicação :lista os nomes de arquivos que contêm o "texto de pesquisa" sem imprimir as linhas correspondentes reais.
Exemplo :
```
grep -l "erro crítico" /var/log/*.log
```
Este comando lista todos os arquivos de log no diretório "/var/log/" que contém o texto "erro crítico".
17. Inverta o comportamento de correspondência: ```
grep -v nome do arquivo "texto de pesquisa"
```
Explicação :Imprime apenas as linhas que não correspondem ao "texto de pesquisa" no nome do arquivo especificado.
Exemplo :
```
grep -v "200 OK" access.log
```
Este comando imprime todas as linhas exceto aquelas que contêm "200 OK" no arquivo "access.log".
18. Imprima apenas as linhas que contêm exclusivamente um texto específico: ```
grep --only-matching nome do arquivo "texto de pesquisa"
```
Explicação :exibe apenas as linhas que correspondem exclusivamente ao "texto de pesquisa" e exclui quaisquer linhas que também correspondam a outros padrões no texto.
Exemplo :
```
grep --only-matching "conectado com sucesso" /var/log/messages
```
Este comando imprime apenas as linhas que contêm exatamente "conectado com sucesso" e não outras variações como "conectado com sucesso ao banco de dados".
19. Colorir o texto correspondente: ```
grep --color nome do arquivo "texto de pesquisa"
```
Explicação :destaca o texto correspondente em cores diferentes para melhorar a legibilidade.
Exemplo :
```
grep --color "erro" /var/log/syslog
```
Este comando imprime as linhas contendo “erro” no arquivo de log do sistema com o texto correspondente destacado em cor.
20. Mostrar estatísticas para linhas correspondentes: ```
grep -c nome do arquivo "texto de pesquisa" | wc-l
```
Explicação :fornece a contagem de linhas correspondentes usando grep e, em seguida, usa o comando "wc -l" para exibir a contagem.
Exemplo :
```
grep -c "aviso" /var/log/mensagens | wc-l
```
Este comando primeiro conta as linhas com “aviso” usando grep e depois exibe a contagem.
21. Filtre arquivos binários durante a pesquisa: ```
grep