[Perl] linea de comandos...

Jose Antonio Galicia jcgalici@cbbanorte.com.mx
Tue, 18 Jun 2002 12:15:22 -0500 (CDT)


On Tue, 18 Jun 2002, Gunnar Wolf wrote:

> > > > cat usuarios.txt | awk -F: {'print $1"\@midominio.com"'}

> > > cat usuarios.txt | perl -e 'while (<>) {chomp;print "$_\@midominio.=
com\n"}'

> > cat usuarios.txt | perl -ne 'split(/:/); print "$_[0]\@dominio.com\n"=
'

> Ummm... =BF?

 Sucede que pasa a pasanor que esperamos que la realidad se
ajuste a nuesta experiencia y a veces no pasa eso :)

 Revisa la l=EDnea original, al awk le esta cambiando el FS a
":" en lugar del "espacio" que siempre usa:

	$ man gawk
	....
	OPTIONS
	       Gawk accepts the following options.

	       -F fs
	       --field-separator fs
	              Use fs for the input field separator (the value of the FS =
predefined variable).

 por lo que seguramente necesita dividir la l=EDnea en
"campos" separados por ":" as=ED que habr=E1 que pasarlo por el
split. Y esta imprimiendo s=F3lo el primer campo, de ah=ED el
$_[0] en el print.

> No entiendo por qu=E9 divides la entrada con /:/ - No est=E1 leyendo de
> /etc/passwd, sino que de un archivo que tiene los nombres de usuario -
> hasta donde entiendo, claro...

 Como dice Sandro: "el contexto, esto te da la
interpretaci=F3n correcta".

> Y es necesario darle el chomp - Es la diferencia entre

 Ok, pero como asumo que son m=E1s de un campo ni me preocupa.

 Saludos,
 To=F1o
---
2180, U.S. History question:
	What 20th Century U.S. President was almost impeached and what
	office did he later hold?