Manipulação de Texto
Transformações Básicas
🔄 Substituição de Texto
# Substituições simples
tr 'a-z' 'A-Z' < texto.txt # Converte para maiúsculas
tr -d '\r' < arquivo.dos # Remove retornos de carro
tr -s '[:space:]' ' ' # Comprime espaços
# Substituições com sed
sed 's/antigo/novo/g' # Substitui todas ocorrências
sed 's/^/ /' # Indenta linhas
sed 's/[[:space:]]*$//' # Remove espaços no fim
✂️ Recorte e Junção
# Manipulação de linhas
cut -d',' -f1-3 dados.csv # Seleciona campos
paste arq1 arq2 # Combina arquivos
join -t',' arq1 arq2 # Join em campo comum
split -l 1000 arquivo.txt # Divide em arquivos menores
Transformações Avançadas
📊 Formatação de Dados
# Conversão de formatos
# CSV para TSV
sed 's/,/\t/g' dados.csv
# JSON para linha única
tr -d '\n' < dados.json | \
sed 's/} /}\n/g'
# Tabela para CSV
column -t -s'|' dados.txt | \
sed 's/ */,/g'
🔠 Manipulação de Strings
# Operações com strings
# Extrai substring
cut -c1-10 arquivo.txt
# Inverte string
rev texto.txt
# Capitaliza primeira letra
sed 's/\b\(.\)/\u\1/g'
# Remove caracteres especiais
tr -cd '[:alnum:][:space:]'
Casos de Uso Comuns
📝 Limpeza de Dados
# Pipeline de limpeza
cat dados.txt | \
tr -d '\r' | \ # Remove CR
tr -s '[:space:]' ' ' | \ # Normaliza espaços
sed 's/^ *//;s/ *$//' | \ # Remove espaços
grep -v '^$' | \ # Remove linhas vazias
tr '[:upper:]' '[:lower:]' # Converte case
🔍 Extração de Informações
# Extrai emails
grep -Eo '[[:alnum:].]+@[[:alnum:].]+\.[[:alpha:]]{2,}'
# Extrai URLs
grep -Eo 'https?://[^[:space:]]+'
# Extrai números de telefone
grep -Eo '[0-9]{2}[ -]?[0-9]{4,5}[-]?[0-9]{4}'
Automação de Tarefas
📋 Templates e Substituição
# Template com variáveis
cat template.txt | \
sed "s/{{nome}}/$NOME/g" | \
sed "s/{{data}}/$DATA/g" | \
sed "s/{{versao}}/$VERSAO/g"
# Geração de código
cat << EOF > config.json
{
"app": "$APP_NAME",
"version": "$VERSION",
"env": "$ENV"
}
EOF
🔄 Processamento em Lote
# Renomeia arquivos em lote
for f in *.txt; do
mv "$f" "${f%.txt}.md"
done
# Processa múltiplos arquivos
find . -name "*.log" -type f | \
while read file; do
sed -i 's/ERROR/ERRO/g' "$file"
done
Exercícios Práticos
🎯 Missão 1: Formatação de Dados
#!/bin/bash
# Objetivos:
# 1. Converter CSV para formato tabular
# 2. Alinhar colunas
# 3. Adicionar cabeçalho
# 4. Numerar linhas
cat dados.csv | \
tr ',' '\t' | \
column -t | \
nl -w3 -s'. ' > tabela.txt
🎯 Missão 2: Transformação de Logs
#!/bin/bash
# Objetivos:
# 1. Extrair campos específicos
# 2. Formatar timestamps
# 3. Categorizar eventos
# 4. Gerar relatório
cat access.log | \
awk '{print $4, $6, $7}' | \
sed 's/\[//;s/\]//' | \
sort -k1,1 | \
uniq -c > report.txt
Dicas e Truques
💡 Boas Práticas
Faça backup antes de transformações
Use expressões regulares com moderação
Teste em amostra pequena primeiro
Documente transformações complexas
Mantenha scripts reutilizáveis
⚠️ Armadilhas Comuns
Encoding incorreto
Caracteres especiais não tratados
Substituições muito agressivas
Perda de dados não intencional
Próximos Passos
Expressões Regulares Avançadas
TEXT MANIPULATION
[🔧🔧🔧🔧🔧] 100%
STATUS: TRANSFORMADOR DE TEXTO
PRÓXIMO: ANÁLISE AVANÇADA
14 abril 2025