Versuchen Sie folgendes:
grep 'client connection' test.txt | awk -F'[/\\]]' '{print $2}'
Testfall
test.txt
---------
abcd
.....client connection.....remote=/10.20.30.40]].......
abcs
.....client connection.....remote=/11.20.30.40]].......
.....client connection.....remote=/12.20.30.40]].......
Ergebnis
10.20.30.40
11.20.30.40
12.20.30.40
Erklärung
grep
werden die Ergebnisse nur Linien Auswahl passende Client-Verbindung. awk
verwendet -F
Flag für Trennzeichen, um Text zu teilen. Wir bitten awk
/
und Trennzeichen zu verwenden, um Text zu teilen. Um mehr als ein Trennzeichen zu verwenden, setzen wir die Trennzeichen in [
und ]
. Um beispielsweise Text nach =
und :
zu teilen, machen wir [=:]
.
jedoch in unserem Fall eine der Begrenzungszeichen ist ]
da meine Absicht IP ist speziell zu extrahieren aus /x.x.x.x]
durch den Text mit /
und ]
spucken. So entkommen wir ihm ]
. Die IP ist der 2. Punkt aus dem Splitting.
Was haben Sie versucht? Die meisten von uns hier sind glücklich, Ihnen zu helfen, Ihr Handwerk zu verbessern, aber sind weniger glücklich, als kurze Bestellung unbezahlte Programmierer zu handeln. Zeigen Sie uns Ihre bisherige Arbeit in einem [MCVE] (http://stackoverflow.com/help/mcve), dem Ergebnis, das Sie erwartet haben, und den Ergebnissen, die Sie erhalten haben, und wir werden Ihnen helfen, es herauszufinden. – ghoti
Mögliches Duplikat von [Muster aus einer Zeichenkette extrahieren] (http://stackoverflow.com/questions/11533063/extract-pattern-from-a-string) – tripleee
Benutzer mit einer Wiederholungszahl von 2K sollten jetzt wissen, dass sie nicht [fragen] Freiwillige für die Dringlichkeit] (http://meta.stackoverflow.com/q/326569/472495). – halfer