Programación Web y Scripting > Perl

 Re: Fich. Unix con Perl

(1/2) > >>

cedosd:
Buenos días, yo tengo un fichero en Unix y necesito encontrar una línea de ese fichero con un determinado texto, posicionarme una línea más abajo y a partir de ahí, escribir varias líneas. ¿Se puede hacer esto en Perl?. La verdad es que estoy bloqueado y agradeceria cualquier ayuda.

Gracias!!

Avalon:
Hola,

Podrías hacer algo como esto:

 
--- Código: Text --- # abres el ficheroopen(INPUT, "fichero.txt"); # guardas todo el contenido del fichero en una variable@contenido = <INPUT>;  # cierras el ficheroclose(INPUT); # recorres los datos del ficheroforeach $linea (@contenido) {    chop($linea);    # se busca la línea que contiene el texto que nos interesa   if ($linea =~ /b$texto/i) {      push(@nuevosdatos, $linea . "n");       # Si se ha encontrado el texto, aquí añadirías las líneas que quieres insertar      push(@nuevosdatos, "Nueva linea 1n");      push(@nuevosdatos, "Nueva linea 2n");      push(@nuevosdatos, "Nueva linea 3n");    }   else {      # se deja la línea como estaba      push(@nuevosdatos, $linea . "n");   }} # Ahora vuelcas los nuevos datos en el fichero, borrando los datos que contenía anteriormente open(OUTPUT, "+< fichero.txt"); foreach $linea (@nuevosdatos) {   print OUTPUT $linea;} close(OUTPUT);  
Espero que te sirva.

Salu2,
Avalon

cedosd:
Gracias, Avalon!!
El Lunes 23 te comento como ha ido el temilla.

cedosd:
Gracias Avalon, funciona perfectamente......¡Tu si que sabes!!.

Avalon:
No hay de que B)

Salu2,
Avalon

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa