2012-04-24 11 views
15

Digamos que tengo millones de paquetes para ver y quiero ver cuántas veces se envió un paquete a un determinado número de puerto.¿Cómo imprimo el recuento de coincidencias únicas con grep?

Éstos son algunos de los paquetes:

10:27:46.227407 IP 85.130.236.26.54156 > 139.91.133.120.60679: tcp 0 
10:27:46.337038 IP 211.142.173.14.80 > 139.91.138.125.56163: tcp 0 
10:27:46.511241 IP 211.49.224.217.3389 > 139.91.131.47.6973: tcp 0 

quiero mirar a través del segundo número de puerto aquí, así:

60679, 53163, 6973, etc

Así que puedo utilizar:

grep -c '\.80:' output.txt 

Para contar todas las veces que se usó el puerto 80. Pero, ¿hay alguna manera de mostrar todos los puertos que se usaron y cuántas veces se encontró en este archivo? Algo como esto y preferible ordenadas demasiado para que pueda ver qué puertos se utiliza con mayor frecuencia:

.80: - 54513 
.110: - 12334 
.445: - 412 

Respuesta

33

Ver uniq -c. Querrá sacar el bit que desee, ordenar el resultado, pipe through uniq, ordenar la salida. Algo como esto quizá:

egrep '\.[0-9]+:' output.txt | sort | uniq -c | sort -nr 

Aclaración: He usado grep aquí porque no está claro qué formato salida.txt se parece, pero usted quiere cortar realmente el poco número de puerto, tal vez a través cut o awk.

Editar: Para llegar al puerto, se puede cortar una vez en un período y luego otra vez en dos puntos: (. O cualquiera de una docena de otras maneras de lograr lo mismo)

cut -d. -f10 < output.txt | cut -d: -f1 

Esa voluntad darle una lista de puertos sin clasificar. Entonces:

cut -d. -f10 < output.txt | cut -d: -f1 | sort | uniq -c | sort -nr 
+0

Gracias por la ayuda. Pero estoy teniendo problemas con el corte. ¿Hay alguna manera de cortar solo con la expresión regular? Porque el número de puerto no está en la misma columna y el espaciado cada vez. – Dragonfly

+0

Cut no usa expresiones regulares. Edite su pregunta y agregue algunas líneas de ejemplo para que podamos ver el formato. –

+0

Ok, lo edité algunos ejemplos. ¿Qué recomendarías que use entonces? – Dragonfly

Cuestiones relacionadas