Un poco vieja escuela, pero esto funcionó en OS X.
Hay algunos trucos:
• Solo editará archivos con extensión .sls
bajo el directorio actual
• .
debe escaparse para garantizarsed
que no los evalúa como "cualquier personaje"
• ,
se usa como sed
delimitador en lugar del habitual/
También tenga en cuenta que esto es para editar una plantilla Jinja para pasar un variable
en la ruta de un import
(pero esto está fuera de tema).
Primero, verifique que su comando sed haga lo que desea (esto solo imprimirá los cambios en stdout, no cambiará los archivos):
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Edite el comando sed según sea necesario, una vez que esté listo para realizar cambios:
for file in $(find . -name *.sls -type f); do echo -e "\n$file: "; sed -i '' 's,foo\.bar,foo/bar/\"+baz+\"/,g' $file; done
Tenga -i ''
en cuenta que en el comando sed , no quería crear una copia de seguridad de los archivos originales (como se explica en Ediciones in situ con sed en OS X o en el comentario de Robert Lujo en esta página).
¡Felices amigos!