Inicio·Comandos de terminal

sed

Procesado de texto

Uso

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

Edita texto línea a línea, casi siempre con s/old/new/; el -i en el sitio difiere entre GNU y BSD, y sin la g final solo cambia la primera coincidencia de cada línea.

Opciones habituales

OpciónSignificado
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

Ejemplos

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.

Están hechos para encadenarse con tuberías. Tres comandos unidos suelen ser más cortos que uno que lo haga todo.

Cómo leerlo

  • Los corchetes [ ] marcan una parte que puedes omitir.
  • Los puntos suspensivos … indican que puedes poner varios.
  • Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.

Preguntas

Q. ¿Qué hace sed?

Edita texto línea a línea, casi siempre con s/old/new/; el -i en el sitio difiere entre GNU y BSD, y sin la g final solo cambia la primera coincidencia de cada línea.

Q. ¿Cómo se escribe?

sed -i 's/[old]/[new]/g' [file] — los corchetes marcan lo que puedes omitir.

Q. ¿Cuántas opciones vale la pena saber?

Aquí van 6; la lista completa está en man sed. Este comando está en Procesado de texto.

Comandos relacionados

página man: man sed