Lições do módulo (2/2)
Pipelines e filtros (grep e |)
Um dos recursos mais poderosos da linha de comando do Linux é a capacidade de conectar diferentes comandos para que a saída de um se torne a entrada do próximo. Essa técnica é realizada usando pipelines e geralmente é combinada com o comando de filtragem de texto grep.
Filtrando texto: grep
O comando grep (Impressão de expressão regular global) procura uma sequência específica de texto em um ou mais arquivos e imprime as linhas correspondentes:
grep "string" [file_name]Opções úteis para grep
grep -i "error" server.log: Executa uma pesquisa sem distinção entre maiúsculas e minúsculas (ignora a diferença entre letras maiúsculas e minúsculas, encontrando "Erro", "erro" ou "ERRO").grep -n "connection" server.log: Exibe o número da linha junto com a linha correspondente.grep -v "INFO" server.log: Inverte a pesquisa, exibindo apenas as linhas que não contêm a palavra-chave especificada.
Comandos de encadeamento: o pipeline |
O operador pipeline é representado pela barra vertical |. Ele envia a saída padrão do comando à esquerda diretamente para a entrada padrão do comando à direita:
[command1] | [command2]Por exemplo, se um arquivo de log for enorme e você quiser pesquisar uma palavra específica sem imprimir o arquivo inteiro, você pode combinar cat e grep:
cat logs/server.log | grep ERRORIsso lê todo o arquivo server.log com cat, mas em vez de imprimi-lo na tela, canaliza o fluxo para grep, que filtra e exibe apenas as linhas que contêm a palavra "ERROR".
Exemplos de uso e erros comuns
Se você procurar por uma palavra minúscula (por exemplo, "post") em um arquivo que a contém apenas em letras maiúsculas (por exemplo, "POST"), grep não retornará nada:
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)Para encontrar a linha independentemente de sua caixa, use o sinalizador -i:
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234Se o arquivo especificado não existir, grep retornará um erro:
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directoryExperimente você mesmo
Exercício 1: Procure erros em arquivos de log
Filtre o arquivo 'logs/server.log' para extrair e exibir apenas as linhas que contêm a palavra 'ERROR' (diferencia maiúsculas de minúsculas).
Mostrar dica
Use o comando grep seguido da palavra a ser pesquisada e do caminho do arquivo.
Solução disponível após 3 tentativas
Exercício 2: Pipelines e filtros
Use o comando cat para ler o arquivo 'logs/server.log' e canalize (|) sua saída para o comando grep para filtrar e imprimir apenas as linhas que contêm a palavra 'WARNING'.
Mostrar dica
Conecte cat logs/server.log ao grep WARNING usando o pipe '|' personagem.
Solução disponível após 3 tentativas
Exercício 3: pesquisa sem distinção entre maiúsculas e minúsculas
Pesquise todas as linhas que contêm a palavra 'post' (maiúsculas ou minúsculas) no arquivo 'logs/access.log' usando o sinalizador grep apropriado.
Mostrar dica
Use grep com a opção -i para ignorar a distinção entre maiúsculas e minúsculas.
Solução disponível após 3 tentativas