[Perl] como saltar a una linea especifica?
Salvador Ortiz Garcia
sog@msg.com.mx
Wed, 12 Dec 2001 04:22:22 -0600 (CST)
On Tue, 11 Dec 2001, Gabriel Lopez Nunez wrote:
>=20
> Hola lista, miren tengo lo siguiente para leer un archivo de texto:
>=20
> while(<FILE>){
> chomp();
> next unless /KBytes/;
> seek(FILE,10,1);
> last;
> }
>=20
> Estoy buscando la palabra "kbytes" en cada linea, una vez encontrada
> quiero saltarme 10 o n lineas adelante, lo ideal seria que seek me enviar=
a
> derechito a la linea que quiero para no seguir sangrando el ciclo, pero
> no lo hace. Alguien sabe como hacerlo? (sin que suene a frase politica).
>=20
> Segun lei seek lo hacia, pero creo que entendi mal. El 1 me posiciona en
> la linea actual y el 10 es sumado para que me lleve 10 lineas adelante.
Si, entendiste un poco mal, seek avanza por _caracteres_ no por l=EDneas, y
en realidad no existe, salvo que tus lineas todas sean de la misma
longitud, forma de saber cuantos caracteres son diez l=EDneas sin leerlas
primero.
Por otro lado basta con que despues de encontrar tu patron, leas las n
l=EDneas m=E1s antes de salir, por ejemplo con
while(<FILE>) {
=09 if(/kbytes/) {
<FILE> for(0..9); # void context
last;
}
}
=20
Saludos
Salvador Ortiz