Skip to content

Folha de dicas de comandos Sed

O Sed é um editor de fluxo utilizado para realizar transformações e operações básicas em texto. É uma das ferramentas de processamento de texto mais poderosas nos sistemas Unix.

Comandos básicos

sed 's/old/new/' file

Substitui a primeira ocorrência de “old” por “new” no ficheiro.

sed 's/old/new/g' file

Substitui todas as ocorrências de “old” por “new” no ficheiro.

sed -n 'p' file

Imprime apenas o conteúdo do ficheiro.

sed 'd' file

Elimina o conteúdo do ficheiro.

sed '2d' file

Elimina a segunda linha do ficheiro.

sed '2,4d' file

Elimina da segunda à quarta linha do ficheiro.

sed '/pattern/d' file

Elimina as linhas que contêm o padrão.

sed -i 's/old/new/g' file

Efetua a substituição no ficheiro e guarda as alterações.

Comandos avançados

sed -e 'comando1' -e 'comando2' file

Executa múltiplos comandos.

sed -f script.sed file

Lê comandos de um ficheiro de script.

sed 's/old/new/2' file

Substitui apenas a segunda correspondência.

sed 's/old/new/3g' file

Substitui todas as correspondências a partir da terceira.

sed 's/\(old\)/\U\1/g' file

Substitui todos os “old” por maiúsculas.

sed 's/\(old\)/\L\1/g' file

Substitui todos os “old” por minúsculas.

sed 's/\(old\)/\E\1/g' file

Substitui todos os “old” por maiúsculas e restaura o caso após a substituição.

sed 's/\(old\)/\e\1/g' file

Substitui todos os “old” por minúsculas e restaura o caso após a substituição.

sed 's/old/new/w output.txt' file

Escreve o resultado da substituição num ficheiro.

sed -n 's/old/new/p' file

Imprime apenas as linhas substituídas.

sed -n '/pattern/p' file

Imprime apenas as linhas que contêm o padrão.

sed -n '1,5p' file

Imprime apenas da primeira à quinta linha.

Padrões de seleção por passos

sed -n 'n~mp' file

Imprime cada m-ésima linha começando na linha n.

Exemplos:

  • sed -n '1~2p' file: Imprime uma linha sim, outra não (linhas ímpares).
  • sed -n '2~2p' file: Imprime todas as linhas pares.
  • sed -n '1~3p' file: Imprime cada terceira linha começando na primeira.
  • sed -n 'n~2p' file: Este padrão continua para qualquer linha de início n.