• Publicidad

Sort básico

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Sort básico

Notapor Seth » 2005-08-04 23:17 @011

Dado un archivo de texto con la estructura siguiente,
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
34!perro!F
38!alacran!F
6!oso!F
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

¿cómo ordenarlo para que una lista quede "solo" así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
alacran
perro
oso
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Gracias.
Seth
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2004-07-15 15:25 @684
Ubicación: Mexico DF

Publicidad

Re: Sort basico

Notapor Perl user » 2005-08-04 23:41 @029

Una solución podría ser la siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my @sorted = sort { $a cmp $b }
  2.              map { ( split /!/ )[1] }
  3.              <FILE>;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Saludos,
Marco A. Manzo
[email protected]
http://www.unixmonkeys.com/amnesiac/
Perl Programming Language
Perl user
Maestro honorario
Maestro honorario
 
Mensajes: 271
Registrado: 2004-11-03 21:11 @924

Re: Sort básico

Notapor explorer » 2005-08-06 09:08 @422

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -F! -lane 'push@A,$F[1];END{print join"\n",sort@A}' archivo.txt
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Lo que hacemos es procesar el archivo.txt por líneas (-n), partiéndola (-a) en partes separadas por '!' (-F). Nos quedamos con la segunda parte ($F[1]) y lo vamos guardando en el array @A. Al final (END) ordenados el array (sort) y lo unimos todo con retornos de carro ("\n") con join. El retorno de carro final lo agrega el -l.

Más corta:
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -F! -ane 'push@A,"$F[1]\n";END{print sort@A}' archivo.txt
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Otra más, haciendo trampa :D
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
  1. perl -F! -lane 'print $F[1]' archivo.txt |sort
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados