2012-04-24 4 views
15

Nehmen wir an, ich habe Millionen von Paketen zu durchsuchen und ich möchte sehen, wie oft ein Paket an eine bestimmte Portnummer gesendet wurde.Wie kann ich die Anzahl der eindeutigen Übereinstimmungen mit grep ausdrucken?

Hier sind einige der Pakete:

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 

Ich möchte hier durch die zweite Portnummer suchen so:

60679, 53163, 6973, etc

So kann ich verwenden:

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

Um alle Zeiten zu zählen, wurde Port 80 verwendet. Aber gibt es eine Möglichkeit, alle Ports anzuzeigen, die verwendet wurden und wie oft es in dieser Datei gefunden wurde. So etwas wie dieses und bevorzugt sortiert auch so kann ich sehen, welche Ports am häufigsten verwendet wurden:

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

Antwort

33

uniq -c See. Sie wollen das gewünschte Bit herausziehen, das Ergebnis sortieren, durch uniq führen, die Ausgabe sortieren. So etwas wie diese vielleicht:

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

Klarstellung: Ich habe grep hier verwendet, weil es ist nicht klar, was Ihr output.txt Format aussieht, aber Sie wollen, um tatsächlich die Portnummer Bit ausgeschnitten, vielleicht über cut oder awk.

Edit: den Hafen zu erhalten, können Sie einmal auf einen Zeitraum geschnitten und dann wieder auf einen Doppelpunkt: (. Oder einer von einem Dutzend andere Möglichkeiten, um das Gleiche zu erreichen)

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

das wird geben Sie eine unsortierte Liste von Ports. Dann:

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

Danke für die Hilfe. Aber ich habe Probleme mit Schnitt. Gibt es eine Möglichkeit, nur mit regulärem Ausdruck zu schneiden? Weil die Portnummer nicht jedes Mal in der gleichen Spalte und dem gleichen Abstand ist. – Dragonfly

+0

Cut verwendet keine Regex. Bearbeiten Sie Ihre Frage und fügen Sie einige Beispielzeilen hinzu, damit wir das Format sehen können. –

+0

Ok ich habe es einige Beispiele bearbeitet. Was würdest du mir empfehlen? – Dragonfly

Verwandte Themen