Usando Perl con /
Luego de terminar una implementación nueva de reportes realizada en java utilizando un servidor de reportes llamado Crystal Clear, el siguiente paso consistía en cambiar la llamada del viejo servidor por el nuevo. Lo cual involucraba cambiar cierta [cadena1] por [cadena2] en cada uno de los archivos, que eran muchos y que residian en un servidor web Tomcat localizado en un RedHat.
Para realizar esta tarea utilice el comando perl con las diferentes opciones que tenía pero en pleno proceso ocurrió un error, el cual era que mis cadenas contenían el caracter / que daba inconvenites en la búsqueda del patrón. Mi primer intento fue este.
Pero no tuve éxito ya que el caracter / no era reconocido con un separador de la expresión, por lo cual la siguiente opción fue utilizar el caracter de escape que era el backslahe \ quedando el comando de la siguiente forma:
Para realizar esta tarea utilice el comando perl con las diferentes opciones que tenía pero en pleno proceso ocurrió un error, el cual era que mis cadenas contenían el caracter / que daba inconvenites en la búsqueda del patrón. Mi primer intento fue este.
perl -e s//matoosfe//matoosfe_company/g -pi.bak *.xsl
Pero no tuve éxito ya que el caracter / no era reconocido con un separador de la expresión, por lo cual la siguiente opción fue utilizar el caracter de escape que era el backslahe \ quedando el comando de la siguiente forma:
perl -e s/\/matoosfe/\/matoosfe_company/g -pi.bak *.xsl
Pero tenia errores al ejecutarlo, asi que la solución que encontre fue cambiar el caracterer separador de la expresión / por otro en mi caso utilice ¡, pudiendo utilizarse cualquier otro excepto los utilzados por gnu-linux en operaciones bash como el ! por ejemplo. Aclarando esto mi comando quedo de la siguiente manera:
Para terminar el comando ejecutado anteriormente lo que hace es cambiar la cadena /matoosfe por la cadena /matoosfe_company en todo el directorio en todos los archivos con extensión .xsl y sacar un respaldo del archivo cambiado con extensión .back .
Espero les sea de mucha utilidad
perl -e s¡/matoosfe¡/matoosfe_company¡g -pi.bak *.xsl
Para terminar el comando ejecutado anteriormente lo que hace es cambiar la cadena /matoosfe por la cadena /matoosfe_company en todo el directorio en todos los archivos con extensión .xsl y sacar un respaldo del archivo cambiado con extensión .back .
Espero les sea de mucha utilidad