Início·Comandos de terminal

sed

Processamento de texto

Uso

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

Edita texto linha a linha, quase sempre com s/old/new/; o -i no lugar difere entre GNU e BSD, e sem o g final só a primeira ocorrência de cada linha muda.

Opções comuns

OpçãoSignificado
s/a/b/gReplace a with b; without the trailing g only the first per line
-iEdit in place. GNU takes -i alone, BSD and macOS need -i ""
-EExtended regex; BSD also accepts -r for GNU compatibility
-nPrint nothing unless a command says to, usually with p
-eAdd another expression to the script
-fRead the script from a file

Exemplos

sed -i 's/foo/bar/g' file.txt

Replaces every foo in place (GNU).

sed -i '' 's/foo/bar/g' file.txt

The same on macOS, with the empty argument.

sed -n '10,20p' file.txt

Prints only lines 10 to 20.

Foram feitos para serem encadeados com pipes. Três comandos ligados costumam ser mais curtos que um que faça tudo.

Como ler

  • Os colchetes [ ] marcam uma parte que você pode omitir.
  • As reticências … indicam que você pode listar vários.
  • As opções diferenciam maiúsculas: em alguns comandos -r e -R fazem coisas diferentes.

Perguntas

Q. O que sed faz?

Edita texto linha a linha, quase sempre com s/old/new/; o -i no lugar difere entre GNU e BSD, e sem o g final só a primeira ocorrência de cada linha muda.

Q. Como se digita?

sed -i 's/[old]/[new]/g' [file] — os colchetes marcam o que você pode omitir.

Q. Quantas opções vale a pena saber?

Aqui estão 6; a lista completa está em man sed. Este comando fica em Processamento de texto.

Comandos relacionados

página man: man sed