===== Exemplos dos comandos grep e find ===== ==== Nível Básico ==== * **Procurar por uma palavra específica em um arquivo com `grep`:** - grep "palavra" arquivo.txt - Busca pela palavra "palavra" no arquivo `arquivo.txt` e exibe as linhas que contêm a correspondência. * **Buscar arquivos por nome em um diretório com `find`:** - find /caminho -name "arquivo.txt" - Procura o arquivo `arquivo.txt` no diretório especificado. * **Buscar por uma palavra ignorando maiúsculas e minúsculas com `grep`:** - grep -i "palavra" arquivo.txt - Realiza a busca pela palavra "palavra" no arquivo `arquivo.txt`, ignorando a distinção entre maiúsculas e minúsculas. * **Buscar arquivos em subdiretórios com `find`:** - find /caminho -type f -name "*.txt" - Procura todos os arquivos com a extensão `.txt` dentro do diretório `/caminho` e seus subdiretórios. ==== Nível Intermediário ==== * **Contar o número de ocorrências de uma palavra em um arquivo com `grep`:** - grep -c "palavra" arquivo.txt - Conta quantas vezes a palavra "palavra" aparece em `arquivo.txt`. * **Buscar arquivos modificados nos últimos 7 dias com `find`:** - find /caminho -type f -mtime -7 - Procura por arquivos modificados nos últimos 7 dias no diretório `/caminho`. * **Buscar por uma palavra em múltiplos arquivos de uma só vez com `grep`:** - grep "palavra" *.txt - Procura por "palavra" em todos os arquivos `.txt` no diretório atual. * **Executar um comando em cada arquivo encontrado com `find`:** - find /caminho -name "*.log" -exec rm {} \; - Encontra e remove todos os arquivos `.log` no diretório `/caminho`. ==== Nível Avançado ==== * **Buscar por uma palavra e mostrar o número das linhas com `grep`:** - grep -n "palavra" arquivo.txt - Exibe as linhas onde a palavra "palavra" aparece, junto com o número da linha. * **Buscar por arquivos maiores que 100 MB com `find`:** - find /caminho -type f -size +100M - Procura arquivos maiores que 100 MB no diretório `/caminho`. * **Buscar por uma palavra em arquivos recursivamente com `grep`:** - grep -r "palavra" /caminho - Busca pela palavra "palavra" em todos os arquivos e subdiretórios de `/caminho`. * **Procurar arquivos por tipo e nome simultaneamente com `find`:** - find /caminho -type f -name "*.txt" -or -name "*.log" - Encontra arquivos com a extensão `.txt` ou `.log` no diretório `/caminho`. ==== Nível Especializado ==== * **Buscar por várias palavras ao mesmo tempo com `grep`:** - grep -E "palavra1|palavra2" arquivo.txt - Usa expressões regulares para buscar "palavra1" **ou** "palavra2" em `arquivo.txt`. * **Executar um comando em arquivos com base em múltiplas condições com `find`:** - find /caminho -type f -name "*.log" -size +50M -exec gzip {} \; - Encontra todos os arquivos `.log` maiores que 50 MB e os compacta com `gzip`. * **Buscar por linhas que não contêm uma palavra com `grep`:** - grep -v "palavra" arquivo.txt - Exibe todas as linhas do arquivo `arquivo.txt` que **não** contêm a palavra "palavra". * **Localizar arquivos vazios e excluí-los com `find`:** - find /caminho -type f -empty -delete - Encontra e exclui todos os arquivos vazios no diretório `/caminho`. * **Combinar `find` e `grep` para buscar por texto dentro de arquivos específicos:** - find /caminho -name "*.log" -exec grep "erro" {} \; - Encontra todos os arquivos `.log` no diretório `/caminho` e procura pela palavra "erro" dentro desses arquivos. * **Buscar por arquivos modificados em uma data específica com `find`:** - find /caminho -type f -newermt "2023-01-01" - Encontra todos os arquivos modificados após 1 de janeiro de 2023. * **Mostrar contexto ao redor das correspondências com `grep`:** - grep -C 3 "palavra" arquivo.txt - Exibe as 3 linhas antes e depois de cada ocorrência da palavra "palavra" em `arquivo.txt`. * **Buscar e substituir texto em múltiplos arquivos com `find` e `sed`:** - find /caminho -name "*.txt" -exec sed -i 's/palavra_antiga/palavra_nova/g' {} \; - Encontra todos os arquivos `.txt` e substitui todas as ocorrências de "palavra_antiga" por "palavra_nova".