Learn Bash Help

Análise de Texto

Análise Básica

📊 Estatísticas de Texto

# Contagens básicas wc -l arquivo.txt # Total de linhas wc -w texto.txt # Total de palavras wc -c dados.txt # Total de caracteres # Análise de vocabulário cat texto.txt | \ tr -cs '[:alpha:]' '\n' | \ sort | uniq -c | \ sort -nr | head -10 # Top 10 palavras

📈 Análise Numérica

# Estatísticas numéricas cat números.txt | \ sort -n | \ awk ' BEGIN { print "=== Análise Numérica ===" } { sum += $1 values[NR] = $1 } END { print "Mínimo:", values[1] print "Máximo:", values[NR] print "Total:", sum print "Média:", sum/NR print "Registros:", NR }'

Análise de Logs

🔍 Padrões de Acesso

# Análise de logs de acesso cat access.log | \ awk '{print $1}' | \ sort | uniq -c | \ sort -nr | head -10 # Top 10 IPs # Códigos de status HTTP cat access.log | \ awk '{print $9}' | \ sort | uniq -c | \ sort -nr # Distribuição de status

⚠️ Análise de Erros

# Detecção de erros grep -i "error" error.log | \ awk -F'[][]' '{print $2}' | \ sort | uniq -c | \ sort -nr # Tipos de erro # Timeline de erros grep -i "error" error.log | \ awk '{print $1, $2}' | \ sort -k1,2 # Ordenado por timestamp

Análise de Dados

📊 Análise de CSV

# Estatísticas por coluna awk -F',' ' NR > 1 { # Pula cabeçalho sum[$1] += $2 # Soma por categoria count[$1]++ # Conta ocorrências } END { for (cat in sum) print cat, sum[cat]/count[cat] }' dados.csv | sort -k2nr # Filtragem e agregação awk -F',' '$3 > 1000 { # Filtra valores sum += $4 # Soma coluna 4 count++ # Conta registros } END { print "Média:", sum/count }' dados.csv

📈 Séries Temporais

# Análise por período awk ' { hora = substr($4, 14, 2) # Extrai hora count[hora]++ # Conta por hora } END { for (h in count) print h, count[h] }' access.log | sort -n # Tendências cat métricas.log | \ awk '{print $1, $2}' | \ sort -k1,1 | \ awk ' { sum += $2 values[NR] = $2 } END { print "Tendência:", values[NR] > values[1] ? "↑" : "↓" }'

Ferramentas de Análise

🔧 Scripts Úteis

#!/bin/bash # Análise completa de texto analyze_text() { local file=$1 echo "=== Análise de $file ===" echo "Linhas: $(wc -l < "$file")" echo "Palavras: $(wc -w < "$file")" echo "Caracteres: $(wc -c < "$file")" echo "Top 5 palavras:" tr -cs '[:alpha:]' '\n' < "$file" | \ sort | uniq -c | sort -nr | head -5 } # Análise de performance analyze_perf() { local log=$1 echo "=== Performance ===" awk ' $9 >= 500 { erros++ } { tempo += $10 } END { print "Erros:", erros print "Tempo médio:", tempo/NR }' "$log" }

📊 Visualização Básica

# Histograma ASCII cat dados.txt | \ sort -n | uniq -c | \ awk '{ printf "%3d: %s\n", $2, repeat("█", int($1/5)) } function repeat(s,n) { return n <= 0 ? "" : s repeat(s,n-1) }' # Gráfico de barras cat stats.txt | \ awk '{ printf "%-10s |%s\n", $1, repeat("=", int($2/100)) } function repeat(s,n) { return n <= 0 ? "" : s repeat(s,n-1) }'

Exercícios Práticos

🎯 Missão 1: Análise de Logs

#!/bin/bash # Objetivos: # 1. Identificar padrões de acesso # 2. Detectar anomalias # 3. Gerar relatório de performance # 4. Visualizar tendências analyze_logs() { local log=$1 # Sua implementação aqui }

🎯 Missão 2: Análise de Dados

#!/bin/bash # Objetivos: # 1. Calcular estatísticas # 2. Identificar outliers # 3. Gerar visualizações # 4. Exportar relatório analyze_data() { local data=$1 # Sua implementação aqui }

Próximos Passos

  1. Automação de Análise

  2. Visualização Avançada

  3. Machine Learning Básico

TEXT ANALYSIS [📊📊📊📊📊] 100% STATUS: ANALISTA DE DADOS PRÓXIMO: AUTOMAÇÃO AVANÇADA
14 abril 2025