On Wed, 11 Nov 2015 15:19:52 +0100, Maykel Moya wrote:
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
Ciertamente hackish, jejeje.
Me quito el sombrero ante quienes dominan perl, pero afortunadamente
resolvi con algunas de las sugerencias de Servilio:
sed -r 's/.* SRC=(\S+) .* DPT=(80|443) .*/\1\.\2/' \
/var/log/firewall.log | sort | uniq -c \
| sed -r 's/^\s+(\S+)\s+/\1\./' \
| sort -t. -k6,6n -k1,1nr -k2,2n -k3,3n -k4,4n -k5,5n \
| sed -r 's/^([^.]+)\.(.+)\.([^.]+)$/\1\t\2\t\3/'
Gracias de todas maneras.
______________________________________________________________________
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