
Ich habe eine Protokolldatei, die folgende Ausgabe erzeugt:
[+] [1.1.1.1] LOG HERE
Ich möchte wissen, wie ich die IP aus dem Protokoll extrahieren kann, um sie an eine „saubere“ Datei zu senden, in der nur die IP aufgelistet ist.
Antwort1
Mit awk
, getestet auf GNU Awk 4.1.3
, nicht sicher, ob es mit anderen Versionen nicht funktioniert
$ cat ip.txt
[+] [1.1.1.1] LOG HERE
$ awk -F'[][]' '{print $4}' ip.txt
1.1.1.1
-F'[][]'
Setzen Sie den Eingabefeldtrenner auf[
oder]
{print $4}
drucke das 4. Feld
Mit sed
, vorausgesetzt, die Eingabedatei hat ein konsistentes Muster wie im Beispiel gezeigt
$ sed 's/.*\[//; s/].*//' ip.txt
1.1.1.1
s/.*\[//
vom Zeilenanfang bis zum Zeilenende[
löschens/].*//
Löschen Sie aus der so geänderten Zeile alles von der ersten]
bis zur letzten Zeile .