Wie lösche ich mit sed alle Zeichen in einer Zeile nach “]”?

13

Wie lösche ich mit sed alle Zeichen in einer Zeile nach "]"?

Ich versuche eine Datei mit cat zu finden, awk. Jetzt gibt mir mein Oneliner so etwas zurück

121.122.121.111] other characters in logs from sendmail.... :)

Jetzt möchte ich alle nach "]" stehenden Zeichen löschen (mit "]"). Ich will nur 121.122.121.111in meiner Ausgabe.

Ich habe nach diesem speziellen Beispiel für sed gegoogelt, aber in diesen Beispielen keine Hilfe gefunden.

B14D3
quelle

Antworten:

20
 echo "121.122.121.111] other characters in logs from sendmail...." | sed 's/].*//' 

Wenn Sie also eine Datei mit solchen Zeilen haben, können Sie dies tun

 sed 's/].*//' filename
Mike
quelle
12

Wie wäre es cutstattdessen:

cat logfile | cut -d "]" -f1
Sven
quelle
3

Etwas wie

sed 's|\(.*\)\] .*$|\1|'

sollte tun, was du willst. Der \(.*\)]wird den gesamten Text bis zum ]in ein gespeichertes Muster aufnehmen und dann \1die ganze Zeile ersetzen.

user9517
quelle