~/docs /DevOps/sed

DevOps

sed

Imported from Notion: sed

updated:: 2026.07.10

Qué resuelve

sed permite buscar y reemplazar texto desde la terminal. Esta página se centra en reemplazos directos, pruebas previas y cambios seguros con backup.

[!NOTE] ⚠️ sed -i modifica archivos directamente. Prueba primero sin -i o usa backup automático.


Uso rápido

Ver cómo quedaría sin modificar

sed 's|TEXTO_VIEJO|TEXTO_NUEVO|' archivo

Modificar el archivo directamente

sed -i 's|TEXTO_VIEJO|TEXTO_NUEVO|' archivo

Modificar creando backup

sed -i.bak 's|TEXTO_VIEJO|TEXTO_NUEVO|' archivo

Esto deja una copia archivo.bak.


Desglose

  • sed: editor de flujo.

  • -i: edita in-place.

  • -i.bak: edita in-place y conserva backup.

  • s: sustitución.

  • Delimitadores: separan patrón y reemplazo. En los ejemplos se usa | para evitar escapar rutas con /.

  • g: reemplaza todas las coincidencias de cada línea.


Ejemplos

Reemplazo simple

sed -i 's|Path.home() / "farmer_core"|Path.home() / "farmer_core_1"|' farmer.py

Reemplazar todas las coincidencias de cada línea

sed -i 's|localhost|127.0.0.1|g' config.txt

Reemplazar en varios archivos

for d in ~/farmer_mio_*; do
  sed -i.bak 's|Path.home() / "farmer_core"|Path.home() / "farmer_core_1"|' "$d/farmer.py"
done

Reemplazar en un rango de carpetas

for i in {1..6}; do
  sed -i.bak 's|Path.home() / "farmer_core"|Path.home() / "farmer_core_1"|' ~/farmer_mio_"$i"/farmer.py
done

Validar cambios

git diff
grep -R 'farmer_core_1' ~/farmer_mio_*

Si no usas Git:

diff -u archivo.bak archivo

Errores comunes

  • Ejecutar -i sin prueba previa.

  • Usar / como delimitador cuando el texto contiene rutas.

  • Olvidar comillas y dejar que la shell expanda caracteres especiales.

  • No usar g cuando hay varias coincidencias por línea.

  • Aplicar un patrón demasiado amplio a muchos archivos.


Checklist final

  • Probé el reemplazo sin -i.

  • Elegí delimitador cómodo, normalmente |.

  • Usé -i.bak si el cambio era sensible.

  • Verifiqué con git diff, grep o diff.

  • Eliminé backups solo después de confirmar el resultado.

- EOF -