On Tue, Nov 10 2015, Hugo Florentino wrote: [...] >> También ordena por el puerto desde el principio, o habrá casos «uniq» >> no agrupará correctamente por no estar consecutivos. > > Es que justamente deseo que uniq agrupe principalmente por ip
O agrupas por los dos, o por uno solo, no hay un principal. Ahora q me haces pensar más en esto, me doy cuenta q el primer ordenamiento es simplemente para agrupar las entradas iguales, así q se podría simplificar. > , la idea es tener en orden descendente para cada equipo que intenta > acceder a un puerto la cantidad de intentos (de ahi el argumento -c), > solo que los resultados deseo luego ordenarlos por puerto, intentos > (descendente) y dirección ip. Para eso es la segunda invocación de «sort». > Agradecería que me pusieras como lo harias tu, aun no acabo de cogerle > la vuelta al comando sort cuando se trata de combinar varios criterios. OK. #+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 [1] solo necesitamos agrupar cadenas identicas [2] sin «g» pues está anclada al inicio [3] use un separador diferente para q sea más fácil de leer la expresión regular Prueba y dime, y dispara para acá con cualquier duda. 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