grep und awk parse line
Ich habe e eine Zeile, die sieht wie folgt aus:
Feb 21 1:05:14 host kernel: [112.33000] SRC=192.168.0.1 DST=90.90.90.90 PREC=0x40 TTL=51 ....
Ich würde gerne eine Liste von uniq IPs aus SRC=
Wie kann ich dies tun? Dank
Vielen Dank an alle!
Erlauben Sie mir, Sie willkommen zu StackOverflow und erinnern drei Dinge, die wir tun in der Regel hier: 1) Wie erhalten Sie Hilfe, versuchen, es zu geben zu Beantwortung von Fragen, in Ihrem Fachbereich 2)
Erlauben Sie mir, Sie willkommen zu StackOverflow und erinnern drei Dinge, die wir tun in der Regel hier: 1) Wie erhalten Sie Hilfe, versuchen, es zu geben zu Beantwortung von Fragen, in Ihrem Fachbereich 2)
Read the FAQs
3) Wenn Sie sehen, gute Q&A, Stimmen Sie bisusing the gray triangles
, als die Glaubwürdigkeit des Systems basiert auf dem Ruf, den Nutzer zu gewinnen, indem Sie Ihr wissen teilen. Denken Sie auch daran, die Antwort akzeptieren, die besser löst Ihr problem, wenn überhaupt, by pressing the checkmark sign
InformationsquelleAutor Dan | 2011-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese arbeiten, obwohl Sie wahrscheinlich könnte es vereinfachen sich weiter in einem einzigen awk-Skript, wenn Sie wollten:
awk '{split($7, a, /=/); print a[2]}' file | sort -u
zu vermeiden, fordern awk zweimal... und dort gehen Sie! (Ich glaube in awk 🙂 Danke glenn.
InformationsquelleAutor kvista
grep -o 'SRC=\([^ ]\+\)' | cut -d= -f2 | sort -u
InformationsquelleAutor glenn jackman
Auch, sort | uniq ==> sort-u
InformationsquelleAutor Erik
Dieser awk-Skript tun:
SRC=
für jede ZeileIch denke, das ist OK. Wie der OP sagte: "vielen Dank an alle!", bevor ich antwortete, so dass ich denke, meine Antwort war Links, ungelesen. In jedem Fall ein substr(i,5) löst das problem, falls es eines gibt.
InformationsquelleAutor Dr. belisarius
Dies wird drucken Sie die IP-Adressen, um ohne "SRC=" string:
Beispiel-Ausgabe:
InformationsquelleAutor Dennis Williamson
Ruby(1.9+)
InformationsquelleAutor kurumi