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

Responder a