sed

Troque uma palavra num arquivo ou num pipe, em todas as vezes que aparece, ou direto dentro do arquivo com sed -i.

>_ Teste aqui: um Linux simulado, nesta página
Carregando o terminal…

Exemplos

  • sed "s/3000/8080/" app.conf
  • sed "s/example/dockerlinux/g" links.txt
  • sed "s|http://|https://|" links.txt
  • sed -i "s/debug=true/debug=false/" app.conf
  • cat app.conf
  • echo "hello world" | sed "s/world/Linux/"

Como funciona

O sed "s/OLD/NEW/" FILE mostra o arquivo com o primeiro OLD de cada linha trocado por NEW. O arquivo em si não muda — você só vê o resultado.

Coloque g no fim para trocar todas as ocorrências da linha, e -i para gravar a mudança no arquivo (in place). Confira a saída primeiro, depois rode de novo com -i.

Sintaxe

sed [-i] "s/VELHO/NOVO/[g]" [ARQUIVO]...

Opções

OpçãoO que faz
s/OLD/NEW/troca o primeiro VELHO de cada linha por NOVO
gglobal: todas as ocorrências da linha, não só a primeira
-iin place: grava a mudança no arquivo
s|A|B|qualquer caractere pode separar as partes: útil quando o texto tem barras

Bom saber

  • Sem -i o sed nunca mexe no arquivo: teste a troca com segurança primeiro, depois coloque o -i.
  • O VELHO é um padrão: um ponto quer dizer "qualquer caractere". Para trocar um ponto de verdade, escreva \..