Published on

Filtros de Conteúdo e Manipulação de texto no Linux

Authors
  • avatar
    Name
    Rodrigo Peixoto
    Twitter

🧰 Filtros de Conteúdo e Manipulação de Texto no Linux

cut, awk, wc, nl, tr, sed, sort, uniq, diff e outros comandos úteis.

Ferramentas essenciais para quem deseja manipular, filtrar e analisar conteúdo textual diretamente no terminal.


✂️ cut — Corta colunas ou campos de texto

📌 Uso básico:

cut -d':' -f1 /etc/passwd     # Mostra apenas o primeiro campo (usuário)
cut -c1-5 arquivo.txt         # Mostra os 5 primeiros caracteres de cada linha

🔧 Opções úteis:

OpçãoSignificado
-dDefine o delimitador de campo
-fDefine os campos a serem exibidos
-cDefine intervalos de caracteres (colunas)

🧠 awk — Processador de texto poderoso

Funciona como uma linguagem de programação orientada a linhas e campos.

📌 Uso básico:

awk '{print $1}' arquivo.txt                 # Imprime a primeira palavra de cada linha
awk -F: '{print $1,$3}' /etc/passwd          # Imprime usuário e UID

🔧 Destaques:

  • $1, $2...: campos da linha
  • $0: linha completa
  • -F: define delimitador

📌 Exemplo com condição:

awk '$3 > 1000 {print $1}' /etc/passwd       # Usuários com UID > 1000

🧮 wc — Word Count (conta linhas, palavras, caracteres)

📌 Uso básico:

wc arquivo.txt             # Conta linhas, palavras e bytes
wc -l arquivo.txt          # Conta apenas linhas
wc -w arquivo.txt          # Conta palavras
wc -c arquivo.txt          # Conta bytes

🔢 nl — Numera as linhas

nl arquivo.txt

🔧 Opções úteis:

OpçãoSignificado
-b aNumera todas as linhas
-b tNumera apenas linhas não vazias

🔁 tr — Transforma ou substitui caracteres

📌 Uso básico:

tr 'a-z' 'A-Z' < arquivo.txt       # Converte para maiúsculas
tr -d '[:digit:]' < arquivo.txt    # Remove todos os números

🔧 Opções:

OpçãoSignificado
-dDeleta caracteres
-sSqueeze (remove repetição)

🧹 sed — Editor de fluxo (stream editor)

Usado para substituições, deleções, inserções e transformações em linhas.

📌 Substituição:

sed 's/erro/sucesso/' arquivo.txt           # Substitui primeira ocorrência
sed 's/erro/sucesso/g' arquivo.txt          # Substitui todas as ocorrências

📌 Remover linha:

sed '/vazio/d' arquivo.txt

📌 Inserir texto:

sed '2i\Linha nova' arquivo.txt  # Insere antes da linha 2

🔃 sort — Ordena linhas

📌 Uso básico:

sort arquivo.txt                   # Ordem alfabética
sort -r arquivo.txt                # Ordem reversa
sort -n numeros.txt                # Ordena numericamente

🧩 uniq — Remove linhas duplicadas consecutivas

Necessário usar com sort para eliminar duplicadas totais.

📌 Uso básico:

sort arquivo.txt | uniq                   # Remove duplicatas
uniq -c arquivo.txt                       # Conta ocorrências

🆚 diff — Compara arquivos linha a linha

📌 Uso básico:

diff arquivo1.txt arquivo2.txt

🔧 Saídas úteis:

  • < → presente no arquivo1
  • > → presente no arquivo2

📌 Exemplo visual amigável:

diff -y arquivo1.txt arquivo2.txt       # Comparação lado a lado

🗃️ Outros Filtros Importantes

📄 head e tail — Início e fim do arquivo

head -n 10 arquivo.txt   # Mostra as 10 primeiras linhas
tail -n 20 arquivo.txt   # Mostra as 20 últimas linhas

🔄 xargs — Constrói argumentos de comandos

cat arquivos.txt | xargs rm       # Remove todos os arquivos listados

📦 paste — Junta linhas lado a lado

paste col1.txt col2.txt

📑 tee — Divide saída para tela + arquivo

comando | tee log.txt

🔄 Combinando Filtros (pipeline)

cat arquivo.txt | tr 'A-Z' 'a-z' | sort | uniq -c | sort -nr

Exemplo: normaliza texto, ordena, remove duplicatas e conta ocorrências.