El 05/05/13 17:09, Hugo Florentino escribió:

> Tengo un texto de tres columnas (la primera numérica y las otras dos
> alfabéticas) y me interesa ordenar por la primera en orden descendente y
> ADEMAS por las otras dos en orden ascendente. Puede lograrse esto con sort?

Hola Hugo

Con sort no sé, con un poco de perl sí:

mmoya@macaria:/tmp$ cat foo.txt
2 b d
2 a c
2 b c
3 a b

mmoya@macaria:/tmp$ perl -e 'print sort { @af = split /\s+/, $a; @bf =
split /\s+/, $b; @cmps = (); push @cmps, $bf[0] <=> $af[0]; for $i (1 ..
$#af) { push @cmps, $af[$i] cmp $bf[$i] }; $cmps[0] != 0 ? $cmps[0] :
$cmps[1] != 0 ? $cmps[1] : $cmps[2] } <>' foo.txt
3 a b
2 a c
2 b c
2 b d

El chorizo es un poco ininteligible. Adjunto una versión formateada y
comentada. Recomiendo además que eches un vistazo a:

$ perldoc -f sort
$ perldoc -f split
$ perldoc perlop (y busca <=> y cmp)

Saludos,
maykel

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: customsort.pl
Type: application/x-perl
Size: 1213 bytes
Desc: no disponible
URL: 
<http://listas.jovenclub.cu/pipermail/gutl-l/attachments/20130506/3e9354da/attachment.bin>
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

-- 
Este mensaje ha sido analizado por MailScanner
en busca de virus y otros contenidos peligrosos,
y se considera que está limpio.

Responder a