Comando sed no Linux com exemplos

O comando sed no Linux é um poderoso editor de fluxo que permite realizar transformações básicas de texto em um fluxo de entrada (um arquivo ou entrada de um pipeline). É amplamente utilizado para pesquisar, localizar e substituir, inserir e excluir texto em arquivos. Ao contrário dos editores de texto simples, o sed processa dados em um pipeline e é especialmente útil para automatizar manipulações de texto em scripts shell.

Os principais recursos do sed incluem a capacidade de:

  • Substitua o texto em um arquivo usando expressões regulares.
  • Exclua linhas com base em padrões específicos.
  • Insira ou anexe texto a linhas específicas.
  • Transforme ou converta texto com base em padrões complexos.

Este guia fornecerá exemplos para demonstrar o uso prático do comando sed no Linux, mostrando como ele pode ser utilizado para diversas tarefas de processamento de texto.

Sintaxe chave e opções do comando Sed

Antes de nos aprofundarmos nos exemplos, é vital compreender a sintaxe primária do comando sed:

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

Aqui estão algumas opções comumente usadas:

  • -e: Permite o uso de vários comandos.
  • -n: Suprime o comportamento padrão ao imprimir cada linha.
  • -i: Edita os arquivos no local (tenha cuidado, pois modifica o arquivo original).

Exemplos básicos de comando Sed no Linux

Substituição de Texto Básico

Um dos usos mais comuns do sed é substituir texto.

echo "Welcome to Linux" | sed 's/Linux/Unix/'

Saída:

Welcome to Unix

Substituição Global

Por padrão, sed substitui a primeira ocorrência em uma linha. Para substituir todas as ocorrências, use o sinalizador 'g'.

echo "Apples are better than apples" | sed 's/apples/oranges/g'

Saída:

Apples are better than oranges

Exclusão de linha

O sed também pode remover linhas com base em um padrão específico.

echo -e "apple\norange\nbanana" | sed '/orange/d'

Saída:

apple
banana

Inserindo e Anexando Texto

Você pode introduzir novas linhas de texto antes ou depois de uma correspondência de padrão.

echo "Hello" | sed 'i\Good Morning'

Saída:

Good Morning
Hello

Alterando caixa de texto

Com sed, você pode manipular a caixa do texto usando a função y. Vamos ver um exemplo de conversão de minúsculas para maiúsculas:

echo "hello world" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'

Saída:

HELLO WORLD

Uso avançado do comando Sed no Linux

Substituição de texto multipadrão

Para vários padrões, você pode empregar -e para encadear vários comandos de substituição.

echo "Welcome to Linux. I love Linux." | sed -e 's/Linux/Unix/' -e 's/love/adore/'

Saída:

Welcome to Unix. I adore Linux.

Substituição de texto condicional

Com o sed, é possível substituir texto com base em certas condições usando endereços.

echo -e "apple\nbanana\ncherry" | sed '/banana/s/$/ - favorite fruit/'

Saída:

apple
banana - favorite fruit
cherry

Usando Sed com expressões regulares

Aproveite o poder das expressões regulares para combinar padrões complexos.

echo "Price is $100" | sed 's/$[0-9]*/& (USD)/'

Saída:

Price is $100 (USD)

Referências anteriores para substituições complexas

Referências anteriores podem ser utilizadas para fazer referência a partes do padrão correspondente.

echo "The white cat and black dog" | sed 's/\(white\|black\) \(cat\|dog\)/\2 \1/'

Saída:

The cat white and dog black

Editando no local com a opção -i

Um dos recursos poderosos do sed é a capacidade de editar arquivos diretamente. Isso pode ser conseguido usando a opção -i, mas sempre faça backup do arquivo original antes de fazer qualquer modificação direta.

echo "Original text" > temp.txt
sed -i 's/Original/Modified/' temp.txt
cat temp.txt

Saída:

Modified text

Conclusão

Compreender e dominar o comando sed pode melhorar significativamente sua capacidade de manipular e processar arquivos de texto no Linux. Ao praticar os exemplos fornecidos, você aprenderá como lidar com eficiência com tarefas comuns de processamento de texto, automatizar trabalhos de edição repetitivos e incorporar sed em seu fluxo de trabalho de script. Experimentar regularmente diferentes opções e comandos do sed aprofundará seu conhecimento e permitirá que você aproveite todo o seu potencial. Aproveite a versatilidade e o poder que o sed traz para suas tarefas de processamento de texto no Linux.

Joshua James
Me siga
Últimos posts por Joshua James (exibir todos)

Deixe um comentário