On Tue, Nov 10 2015, Servilio Afre Puentes wrote:

[...]
> #+BEGIN_SRC sh
> sed -r 's/.* SRC=(\S+) .* DPT=(80|443) .*/\1.\2/g' /var/log/firewall.log
> | sort  # [1]
> | uniq -c
> | sed -r 's/^\s+(\S+)\s+/\1./' # [2]
> | sort -t. -k2,2n -k3,3n -k4,4n -k5,5n -k1,1rn -k6,6n
> | sed -r 's|^(\S+)\.|\1\t|;s|\.(\S+)$|\t\1|' # [3]
> #+END_SRC

Este último «sed» está mal, la primera expresión regular consume todo
excepto el último punto, y la segunda no encuentra nada entonces, dando
algo como:

3.184.105.139.67        443

Así q hay q usar expresiones regulares más específicas:

sed -r 's|^([^.]+)\.|\1\t|;s|\.([^.]+)$|\t\1|'

y entonces tenemos:

3       184.105.139.67  443

Moraleja: el vago envía dos mensajes.

Servilio


______________________________________________________________________
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