On 10/11/15 11:05, Hugo Florentino wrote: > Y obtengo un resultado como este: > 2 37.203.214.106 80 > 1 45.55.128.152 443 > 1 52.33.104.21 443 > 3 54.80.63.47 443 [...]
> Cómo podría lograr que el listado se ordene con el criterio de columnas > 3,1(invertido),2? Hackish as hell y poco legible, pero funciona: $ perl -an -e 'push @records, [$F[0], $F[1], $F[2]]; END {@sorted = sort {@ipa = split(/\./, $a->[1]); @ipb = split(/\./, $b->[1]); $a->[2] <=> $b->[2] || $b->[0] <=> $a->[0] || int($ipa[0]) <=> int($ipb[0])} @records; foreach $record (@sorted) {printf("%-2s %-15s %3s\n", @$record)}}' <input.txt 2 37.203.214.106 80 2 122.0.76.146 80 2 169.229.3.90 80 1 74.82.47.44 80 1 74.82.47.56 80 1 89.248.171.139 80 1 94.102.51.15 80 1 117.53.152.36 80 1 159.203.141.96 80 1 167.88.10.86 80 1 202.152.1.232 80 1 210.36.6.94 80 3 54.80.63.47 443 3 146.0.226.251 443 [...] Saludos, maykel [1] http://stackoverflow.com/a/14018742 [2] http://perldoc.perl.org/functions/sort.html [3] http://perldoc.perl.org/perlrun.html#Command-Switches ______________________________________________________________________ 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