Filtrado con perl (OT)

Cristian Gutierrez crgutier en dcc.uchile.cl
Lun Oct 11 18:23:30 CLST 2004


Hoy en la tarde, Darwin Betancourt dijo:
[...]
> La pregunta es como puedo hacer para filtrar las direcciones de correo
> eletronico utilizando perl y mandarlas a otro archivo, habia pensando
> en algo como la expresion regular: [a-z]*@misitio.net.ec pero mi
> problema es que no se donde ni como ubicarla
>

Esto hace lo basico:

,----
| #!/usr/bin/perl
| open(FILE, $ARGV[0]);
| while(<FILE>) {
|     if ( /([a-z]+\@misitio\.net\.ec)/ ) {
|         print $1;
|     }
| }
| close(FILE);
`----

Si ademas quieres poder obtener mas de una direccion por cada linea, usa
esto:

,----
| #!/usr/bin/perl
| open(FILE, $ARGV[0]);
| while(<FILE>) {
|     @m = ( $_ =~/([a-z]+\@misitio\.net\.ec)/g );
|     print join("\n", @m);
| }
| close(FILE);
`----

Y si te quieres ahorrar tener que escribir el script y darle permisos
de ejecucion:

$ perl -nle 'print join("\n",/([a-z]+\@misitio\.net\.ec)/g)' entrada.txt > salida.txt

:-)

-- 
Cristian Gutierrez			http://www.dcc.uchile.cl/~crgutier
crgutier[@]dcc.uchile.cl                        Jabber:crgutier en jabber.org

"There are two ways of constructing a software design; one way is to make
it so simple that there are obviously no deficiencies, and the other way
is to make it so complicated that there are no obvious deficiencies.  The
first method is far more difficult." -- C. A. R. Hoare



Más información sobre la lista de distribución Linux