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.

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

12

Wie wäre es cutstattdessen:

cat logfile | cut -d "]" -f1

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.