El comando SED no se está ejecutando desde el script bash
He escrito un script de bash que llama a un comando sed (entre otras cosas) en un archivo para completar una búsqueda / reemplazo de 2 cadenas diferentes.
El problema es que, después de ejecutar el script, compruebo los archivos y no se ha actualizado nada. Sin embargo, si ejecuto los comandos que se están produciendo (de todos modos los echo como salida), entonces funcionan.
Por ejemplo, dentro del script tengo:
echo "/usr/local/bin/sed -i -e 's/${String1}/${String1R}/g;s/\/${String2}\//\/${String2R}\//g' ${ROOT_DIR}/data/file.sql"
/usr/local/bin/sed -i -e 's/${String1}/${String1R}/g;s/\/${String2}\//\/${TString2R}\//g' ${ROOT_DIR}/data/file.sql
Ejecutar el script no cambia file.sql; sin embargo, si ejecuto el comando que se imprime en la consola, por ejemplo. / usr / local / bin / sed -i -e 's file_name1 / file_name2 / g; s // path_substring1 /// path_substring2 // g' /path/to/file/file.sql ¡funciona perfectamente!