Filtros de Texto
Filtros Básicos
🔤 Ordenação
# sort - ordenação de linhas
sort arquivo.txt # Ordem alfabética
sort -n números.txt # Ordem numérica
sort -r lista.txt # Ordem reversa
sort -k2 dados.txt # Ordena pela coluna 2
sort -u nomes.txt # Remove duplicatas
📊 Contagem e Estatísticas
# uniq - remove/conta duplicatas
uniq -c lista.txt # Conta ocorrências
uniq -d repetidos.txt # Mostra só duplicatas
uniq -u únicos.txt # Mostra só únicos
# wc - conta linhas/palavras/caracteres
wc arquivo.txt # Todas contagens
wc -l logs/*.log # Conta linhas
wc -w texto.txt # Conta palavras
wc -c dados.bin # Conta bytes
Filtros de Transformação
✂️ Extração de Campos
# cut - extrai colunas
cut -d',' -f1,3 dados.csv # Campos 1 e 3
cut -c1-10 arquivo.txt # Primeiros 10 chars
cut -d':' -f1 /etc/passwd # Extrai usernames
# paste - combina arquivos
paste arq1.txt arq2.txt # Lado a lado
paste -d',' *.txt # Une com vírgula
paste -s números.txt # Uma linha
🔄 Transformação de Caracteres
# tr - traduz/deleta caracteres
tr 'a-z' 'A-Z' < texto.txt # Maiúsculas
tr -d '\r' < dos.txt # Remove CR
tr -s '\n' < dados.txt # Comprime vazios
tr '[:space:]' ',' < arq # Espaços para vírgulas
# expand/unexpand - tabs/espaços
expand arquivo.txt # Tab para espaços
unexpand -a texto.txt # Espaços para tab
Filtros Avançados
🎯 Seleção de Linhas
# head/tail - início/fim do arquivo
head -n 5 arquivo.txt # Primeiras 5 linhas
tail -f log.txt # Monitora arquivo
head -c 1K dados.bin # Primeiros 1K bytes
tail -n +10 arquivo.txt # A partir da linha 10
# sed como filtro
sed -n '10,20p' arquivo # Linhas 10-20
sed '/^$/d' texto.txt # Remove vazias
📝 Formatação de Saída
# column - formata em colunas
column -t dados.txt # Alinha colunas
column -s',' -t dados.csv # CSV em tabela
column -n arquivo.txt # Numera linhas
# fmt - formata parágrafos
fmt -w 60 texto.txt # Largura 60
fmt -u arquivo.txt # Uniforme
Combinando Filtros
🔄 Pipelines Comuns
# Análise de logs
cat access.log | \
cut -d' ' -f1 | \
sort | uniq -c | \
sort -nr | head -10
# Processamento de CSV
cat dados.csv | \
tr -d '\r' | \
cut -d',' -f2,4 | \
sort -t',' -k1 | \
uniq > resultado.csv
📊 Análise de Dados
# Estatísticas básicas
cat números.txt | \
sort -n | \
awk '
BEGIN {print "Análise Numérica"}
{sum += $1; values[NR] = $1}
END {
print "Min:", values[1]
print "Max:", values[NR]
print "Média:", sum/NR
}'
# Contagem de palavras
cat texto.txt | \
tr -cs '[:alpha:]' '\n' | \
tr '[:upper:]' '[:lower:]' | \
sort | uniq -c | sort -nr
Exercícios Práticos
🎯 Missão 1: Análise de Logs
#!/bin/bash
# Objetivos:
# 1. Extrair IPs únicos
# 2. Contar códigos HTTP
# 3. Calcular bytes transferidos
# 4. Identificar User Agents
cat access.log | \
awk '{print $1}' | sort -u > ips.txt
cat access.log | \
cut -d'"' -f3 | cut -d' ' -f1 | \
sort | uniq -c | sort -nr
🎯 Missão 2: Processamento de Dados
#!/bin/bash
# Objetivos:
# 1. Limpar dados CSV
# 2. Extrair colunas específicas
# 3. Remover duplicatas
# 4. Formatar saída
cat dados.csv | \
tr -d '\r' | \
cut -d',' -f1,3,5 | \
sort -t',' -k1 | uniq | \
column -s',' -t > limpo.txt
Dicas e Truques
💡 Boas Práticas
Use
sort | uniqem vez de apenasuniqPrefira
cutaawkpara extrações simplesUse
column -tpara saída legívelMonitore logs com
tail -fCombine filtros com pipes
⚠️ Armadilhas Comuns
Esquecimento de ordenar antes do
uniqProblemas com delimitadores
Encoding incorreto
Consumo excessivo de memória
Próximos Passos
FILTER MASTERY
[⚡⚡⚡⚡⚡] 100%
STATUS: FILTROS DOMINADOS
PRÓXIMO: REGEX AVANÇADO
14 abril 2025