modificar lineas contenidas en un archivo

Iniciado por romanjr, 17 Febrero 2011, 02:23 AM

0 Miembros y 1 Visitante están viendo este tema.

leogtz

#10
Bueno, ya resolví lo de la línea 12, claro, con SED, con batch nativo habría costado más trabajo.

Bueno, en el directorio "test" tengo los siguientes archivos html:


Código (dos) [Seleccionar]
C:\test>dir /B *.html
code_crucero 1-bj04.html
code_crucero 10-bj04.html
code_crucero 11-bj04.html
code_crucero 12-bj04.html
code_crucero 13-bj04.html
code_crucero 14-bj04.html
code_crucero 15-bj04.html
code_crucero 2-bj04.html
code_crucero 3-bj04.html
code_crucero 4-bj04.html
code_crucero 5-bj04.html
code_crucero 6-bj04.html
code_crucero 7-bj04.html
code_crucero 8-bj04.html
code_crucero 9-bj04.html

C:\test>


Ahora, cada html tiene el siguiente texto (ya que no me lo proporcionaste todo):


CitarC:\test>type "code_crucero 10-bj04.html"
1
2
3
4
5
6
7
8
9
10
11
<p align="center" ><span>Cruceros BJU-04</span></p>
<p align="center"><img src="CRUCERO 10-BJ04.jpg" width="624" height="493"></p>
<p align="center"><img src="mapa 10-BJ04.jpg" width="624" height="493"></p>

C:\test>

Como estoy editando el archivo "code_crucero 10-bj04.html", debe quedar así:

Citar<p align="center" ><span>crucero 10-bj04.jpg</span></p>

Y así sucesivamente...

Esto se logra con el siguiente script:

Código (dos) [Seleccionar]
@echo off
:: Leo Gutiérrez Ramírez.
:: leorocko13@hotmail.com

pushd \test
for /f "tokens=*" %%_ in ('dir /b .\*.html') do (call:procesar "%%~_")
popd
goto:eof

:procesar
sed -i "12s/^\(.*<span>\)\(.*\)\(<\/span.*\)/\1%~n1.jpg\3/" "%~1"


Los deja así:

Citar
C:\test>type "code_crucero 10-bj04.html"
1
2
3
4
5
6
7
8
9
10
11
<p align="center" ><span>code_crucero 10-bj04.jpg</span></p>
<p align="center"><img src="CRUCERO 10-BJ04.jpg" width="624" height="493"></p>
<p align="center"><img src="mapa 10-BJ04.jpg" width="624" height="493"></p>



C:\test>type "code_crucero 7-bj04.html"
1
2
3
4
5
6
7
8
9
10
11
<p align="center" ><span>code_crucero 7-bj04.jpg</span></p>
<p align="center"><img src="CRUCERO 7-BJ04.jpg" width="624" height="493"></p>
<p align="center"><img src="mapa 7-BJ04.jpg" width="624" height="493"></p>



C:\test>

Debes de dejar todo el contenido de los HTML, porque no estoy editando por línea, estoy editando por expresión regular, así que puede causar problemas.

Antes de proceder con lo demás, necesito el contenido de los HTML.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

romanjr

gracias esta super el codigo, tendre que bajar el sed y lo voy a probar inmediatamente, de todas formas te paso el codigo completo del html

codigo:

<html>
<head>
  <title>Validaciones</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"">
</head>

<body bgcolor="ffffff" background="../../../../image/sacmgr.jpg">
   <p align="center"><img src="../../../../image/IMG_2.jpg" width="840" height="115"></p>
   
   <div align="center">

"<p align="center"><span>CRUCERO 12-BJ04</span></p>"
"<p align="center"><img src="CRUCERO 12-BJ04.jpg" width="624" height="493"></p>"
"<p align="center"><img src="map_CRUCERO 12-BJ04.jpg" width="624" height="493"></p>"
 


</div>
   
   
   
</body>
</html>


lo unico que hace el html es mostrar esas 2 imagenes pero se hace un html por cada par de archivos (map_*.jpg y *.jpg) imaginate... son 2000, me volveria loco y no terminaria.

una vez mas realmente no saben como estoy agradecido cuenten con un amigo de este lado de la pantalla.

Saludos y mil gracias

romanjr

#12
hola perdon por la ausencia, ustedes saben el trabajo, estimado Leo... con ese codigo que mencionas solo cambia la linea 12... estoy bien??? y si le agrego las demas lineas con el mismo solo cambiando el "12" me hace los demas cambios?, no lo he probado ya que quiero hacero en win 7, de todosmodos.. oye aprovecho....

sabes de alguien que sepa mapserver? pero que sea asi de picudo como tu, o si tu sabes de eso ... podrias echarme la mano?

gracias por tu ayuda

saludos

leogtz

Hola, romanjr. Disculpa, he estado ocupado.

No sé sobre mapserver, lamentablemente :/

Mañana prometo ayudarte a solucionar las demás líneas.

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

romanjr

hola leo, perdon por la ausencia, tuve que estar fuera de la line un rato... ya lo probe y quedo, te agradezco mucho tu tiempo y ayuda, espero podamos seguir ayudandonos... si necesitas algo de mapserver ahi me dices y lo poco que se con gusto te ayudo.

y dime como calificar tu asesoria en este u otros sitios.

gracias

por cierto... sabes php???? tengo unas dudas con eso

gracias