Come eliminare tutti i caratteri in una riga dopo "]" con sed?


13

Come eliminare tutti i caratteri in una riga dopo "]" con sed?

Sto provando a grep alcuni file usando cat, awk. Ora il mio oneliner mi restituisce qualcosa del genere

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

Ora voglio eliminare tutto dopo il carattere "]" (con "]"). Voglio solo 121.122.121.111nel mio output.

Stavo cercando su Google quel particolare esempio di sed ma non ho trovato alcun aiuto in quegli esempi.

Risposte:


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

Quindi se hai un file pieno di righe come quello puoi farlo

 sed 's/].*//' filename

12

Che ne dici cutinvece:

cat logfile | cut -d "]" -f1

3

Qualcosa di simile a

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

dovrebbe fare quello che vuoi. Il \(.*\)]catturerà tutto il testo fino al ]in un modello ricordato e poi le \1lo sostituisce per tutta la linea.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.