[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: