Demonstrações práticas de manipulação de fluxos de texto com awk, sed, ripgrep e automação em Bash.


🗺️ Anatomia dos Descritores de Arquivo POSIX

flowchart LR
    STDIN["Descritor 0 (stdin)\nEntrada Padrão"] --> CMD["Comando Linux (ex: grep / awk)"]
    CMD --> STDOUT["Descritor 1 (stdout)\nSaída Padrão (Sucesso)"]
    CMD --> STDERR["Descritor 2 (stderr)\nSaída de Erros 🚨"]

    style STDIN fill:#ede7f6,stroke:#512da8,stroke-width:1.5px
    style CMD fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff
    style STDOUT fill:#e8f5e9,stroke:#4caf50,stroke-width:1.5px
    style STDERR fill:#ffebee,stroke:#d32f2f,stroke-width:1.5px

📄 Exemplo 1: Processamento Estruturado com AWK

# Calcular o consumo total de memória RAM em MB dos processos do usuário atual:
ps -u $USER -o rss | awk '{sum+=$1} END {print "Memória Total:", sum/1024, "MB"}'

# Filtrar linhas de log que contenham código HTTP 500 e imprimir IP e Endpoint:
awk '$9 == "500" {print "IP:", $1, "-> Rota:", $7}' /var/log/nginx/access.log

📄 Exemplo 2: Substituições Avançadas com SED e Regex

# Substituir todas as ocorrências de 'http://' por 'https://' em todos os arquivos markdown:
find docs/ -name "*.md" -exec sed -i 's|http://api\.empresa\.com|https://api.empresa.com|g' {} +

# Remover todas as linhas em branco de um arquivo de configuração:
sed -i '/^[[:space:]]*$/d' config.env