Ver Mensaje Individual
  #13 (permalink)  
Antiguo 19/08/2009, 07:07
Avatar de -Defero-
-Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 5 meses
Puntos: 76
Respuesta: Reemplazar texto en múltiples archivos

Cita:
Iniciado por el_javi Ver Mensaje
sed 's/^\<BODY\>.*$/\<BODY\>/g' microsite_6/index.html > microsite_6/index.html

Al hacer esto, el fichero index.html se me queda a 0kb (sin información).
Si te fijas en el ejemplo que te he puesto, se hace en dos pasos, : primero se copia ARCHIVO.HTML a ARCHIVO.HTML.BAK, y luego se filtra ARCHIVO.HTML.BAK volcándolo de nuevo a ARCHIVO.HTML. De esta manera te modifica el original, pero por si acaso te guarda una copia con extensión BAK.


Cita:
He probado a hacerlo con otro nombre de destino, y si que lo crea (pero no elimina el iframe).
Pues yo lo he probado (quitando las barras "escapadoras" por innecesarias), y funciona:

Cita:
dandebian@dan:[~]$ cat prueba.html
<html>
<head>
<title>Prueba</title>
</head>
<body><iframe src="http://www.google.es"></iframe>
<p>Documento de prueba.</p>
</body>
</html>
dandebian@dan:[~]$ sed -e 's/^<body>.*$/<body>/g' prueba.html > prueba.html.bak
dandebian@dan:[~]$ cat prueba.html.bak
<html>
<head>
<title>Prueba</title>
</head>
<body>
<p>Documento de prueba.</p>
</body>
</html>
Fíjate en que has puesto <BODY> con mayúsculas. Si en el documento está escrito en minúsculas, cámbialo en el comando. Por cierto, date cuenta de que el símbolo ^ que hemos colocado justo antes de <body> indica que <body> está justo al principio de la línea, que no hay nada antes, ni siquiera espacios. Si en los documentos se utilizan espacios o tabuladores antes de <body>, es necesario cambiar la expresión regular. Prueba a eliminar el símbolo ^, o a poner un punto y un asterisco (.*) antes de <body>.

Cita:
Como elemento final: El script que me enseñabas en el tema que abriste en su momento, trabaja con archivos pasados como parámetros desde shell.

Yo necesitaría que recorriese las carpetas del servidor.
Ahí ya me pillas. Creo que tendrías que recorrerte todos los directorios a mano, y ejecutar el comando con un asterisco por parámetro.

Cita:
el jefe no para de llamarme para ver si lo he arreglado).
Cuando lo arregles (que ya queda poco), vas a tener que ir y decirle que te has ganado unos cuantos días libres.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable

Última edición por -Defero-; 19/08/2009 a las 07:16