Re: Offtopic: Expresiones regulares, ¡ayudadme!
On vie, sep 10, 1999 at 08:30:17 -0600, Marcelo E. Magallon wrote:
> demasiado a prisa, en perl:
>
> [a-zA-Z]+\d{3}_\d{1,4}[xX]?\s+[0-9]+.[0-9]+\s+\S+\s+\S+\s+\S+\s+\S+
Efectívamente, depurando un poco funciona perfecto si hago:
#!/usr/bin/perl -w
open(FICHENT,"<$ARGV[0]") || die "Error: No puede abrirse el fichero $ARGV[0]";
while (<FICHENT>) {
if (m/^\s*[a-zA-Z]?\d{1,3}?_\d{1,4}?[xX]?\s+([0-9]+.[0-9]+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/){
$dato = $1;
$orden = "programa $2 $3 $4 $5";
open(RESUL,"$orden|");
while (<RESUL>) {
$resultado=$_;
print $dato, "\t", $resultado;
}
close RESUL;
}
}
close FICHENT;
Lo único que no llego a comprender es por qué si le añado '$' al final del
patrón (tal como me puso Marcelo) me toma únicamente la última línea del
fichero de entrada.
Gracias a todos en especial a Marcelo y a Ricard cuya solución probaré
porque me pica la curiosidad de php hace tiempo, muchas gracias... no sabeis
del atasco que me habeis sacado.
P.D1: ¿Cómo implementaría en perl el análogo a 'if(argc<NUMARGS) exit(1);'
de C?.
P.D2: Para no dar la lata con perl aquí ¿existe alguna lista de correo en
español sobre perl?.
--
Javier Viñuales Gutiérrez <vigu@ctv.es>
Webs: http://www.ctv.es/USERS/vigu Personal
http://www.ctv.es/USERS/vigu/linux/ ViguLinux
PGP public key: http://www.ctv.es/USERS/vigu/vigu.pubkey
Reply to: