Ver Mensaje Individual
  #15 (permalink)  
Antiguo 19/08/2009, 11:25
Avatar de el_javi
el_javi
 
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 8 meses
Puntos: 10
Respuesta: Reemplazar texto en múltiples archivos

Hola a todos.

Tras seguir investigando he encontrado este Script que hace se supone, lo que estoy buscando.

Os pongo el Script (con modificaciones ya de uso propio) (de momento la ruta de ejecución es sobre un directorio con un único archivo)

Código:
#!/bin/bash
DIRECTORIO_CON_ARCHIVOS=/var/www/vhosts/eliteprocursos.com/httpdocs/club_glam/microsite_10/

find $DIRECTORIO_CON_ARCHIVOS -exec grep "<BODY><iframe" '{}' \; -print > archivos_para_modificar

for PATH_ARCHIVO in $(cat archivos_para_modificar); do
     NOMBRE_ARCHIVO=$(basename PATH_ARCHIVO)
     DIRECTORIO_ARCHIVO=$(dirname PATH_ARCHIVO)
     cd $DIRECTORIO_ARCHIVO

     sed -e 's/<BODY>.*</iframe>/<BODY>/g' $NOMBRE_ARCHIVO > tmp_archivo.blah
     mv tmp_archivo.blah $NOMBRE_ARCHIVO
     rm -rf tmp_archivo.blah
done
Como se puede ver tanto en el findo como en el sed, uso BODY como cadena de referencia (esque en este archivo el BODY está escrito en mayúsculas, mal por parte del desarrollador que lo haya hecho)

Pues esta ejecución no me da buen resultado... concretamente me dice que:

sed: -e expression #1, char 21: unknown option to `s'
sed: -e expression #1, char 21: unknown option to `s'
sed: -e expression #1, char 21: unknown option to `s'
sed: -e expression #1, char 21: unknown option to `s'
sed: -e expression #1, char 21: unknown option to `s'
sed: -e expression #1, char 21: unknown option to `s'
sed: -e expression #1, char 21: unknown option to `s'

¿Porqué esto? ¿Qué veis mal?

Espero vuestros comentarios pronto.

Gracias.

PD: no me funciona el parámetro -i para que sobreescriba el fichero en uso, por eso hago uso de fichero temporal.

Saludos.

Javier