Re: Duda de Perl->regexp
Hola, Amaya:
Prueba con la función split:
$a="a|b|c";
@b = split(/\|/,$a);
print $b[1];
(imprime "b")
Saludos!
diego
On Thu, 27 Feb 2003, Amaya wrote:
> Hola listeros,
>
> Ando muy entretenida ;-) parseando unos bonitos logs ;-) y tengo un
> problema que seguro que es la tontería más grande del mundo.
>
> Tengo una expresión regular y necesito que haga un poco más:
>
> # Abro un archivo
> while (chomp($id = <FTAG>)){
> # Abro otro archivo
> while (chop($line = <FAUTH>)){
> # Esto me funciona, pero no muy bien
> $line =~ /.*?\|.*?\|.*?\|.*?\|.*?\|.*?\|(.*?.)\|.*?/ ;
> $encontrado = $+ ;
>
> # Esto es lo que necesito que me encuentre:
> # La línea debe empezar por el contenido de la variable $id.
> $line = ~/^\$id\|.*?\|.*?\|.*?\|.*?\|.*?\|(.*?.)\|.*/;
> #####################################################
> # ~~~~~ Cómo escribo esto????
> #####################################################
> $encontrado = $+ ;
>
> if($encontrado){
> print $encontrado, "\n";
> }
> }
> }
>
> La línea típica de logs sería así:
> 4a10a003-f2da63e8c3-0|lxrhgpp04|2003-01-20 07:01:06,372|AUTH |[Thread-8]|1|AplicaciónCRC|1|351|1|0|0|0||
> Abstrayendo:
>
> $id|host|fecha|petición|algo|algo|$encontrado|más_cosas_que_no_me_interesan
>
> Sólo quiero saber el campo $encontrado de la línea que empieza por $id.
>
> Estoy empezando tanto con Perl como con las regexp y me cuesta un poco.
> Gracias por vuestro tiempo :-)
>
>
>
> --
> .''`. Girl, you gotta change your crazy ways, you hear me?
> : :' : Crazy by Aerosmith
> `. `' Proudly running Debian GNU/Linux (Sid + 2.4.20 + Ext3)
> `- www.amayita.com www.malapecora.com www.chicasduras.com
>
>
> --
> To UNSUBSCRIBE, email to debian-user-spanish-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>
Diego Sevilla Ruiz -- http://ditec.um.es/~dsevilla/ -- dsevilla@um.es
Dep. Ingeniería y Tecnología de Computadores, Facultad de Informática
Univ.de Murcia,Campus Espinardo,30080 Murcia (SPAIN),Tel.+34968367571
lynx -dump ditec.um.es/~dsevilla/face |uncompface | ikon2xbm |display
PGP: http://pgp.rediris.es:11371/pks/lookup?op=get&search=0xC9B964B7
perl -e'$_="\x4\@FLe\x2&B";for(/../g){print unpack("b*",$_),"\n"}'|tr 01 " #"
(lambda x,f=lambda x,f:x and x[-1]+f(x[:-1],f):f(x,f))('se.mu@allivesd')
Reply to: