• Publicidad

Ordenar un fichero mediante varios campos

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Ordenar un fichero mediante varios campos

Notapor xagutxu » 2011-01-26 19:14 @843

Hola a todos:

Me gustaría saber si en Perl es posible ordenar las filas de un fichero mediante más de un campo (p.ej., un CSV). Por ejemplo, que reordenara el fichero teniendo en cuenta la primera columna y, dentro de ésa (para los elementos que son iguales), que ordenara mediante la cuarta columna y, dentro de esa última, mediante la segunda columna...

¿Sabe alguien alguna forma fácil de hacerlo? He intentado mediante el "sort" del bash de Linux, pero no ordena por campos; solo tiene en cuenta la totalidad de la línea...

Gracias de antemano,

xagutxu
xagutxu
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2007-11-25 12:39 @569

Publicidad

Re: Ordenar un fichero mediante varios campos

Notapor explorer » 2011-01-26 19:23 @849

En Perl se podría hacer...

Encadenando las condiciones dentro del sort{}, y extrayendo antes los campos a ordenar, de las líneas.

Quizás fuera mejor leer el CSV en memoria, pasarlo a una estructura de datos tipo array de array y luego pasársela a sort, con las condiciones en cascada.

El sort de Linux sí que puede hacer eso. Solo tienes que jugar con las opciones -t y -k.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ordenar un fichero mediante varios campos

Notapor xagutxu » 2011-01-26 20:01 @875

Ok. Lo he mirado en Linux, ¡y va perfectamente...!

Un millón de gracias,

Xagutxu
xagutxu
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2007-11-25 12:39 @569


Volver a Intermedio

¿Quién está conectado?

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

cron