🐚 Cap 03: Shell Scripting e Pipes POSIX - Exemplos Práticos
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