How to delete all characters in one line after "]" with sed?

How to delete all characters in one line after "]" with sed ?

Im trying to grep some file using cat, awk. Now my oneliner returns me something like

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

Now I want to delete all after "]" character (with "]"). I want only 121.122.121.111 in my output.

I was googling for that particular example of sed but didn't find any help in those examples.


Solution 1:

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

So if you have a file full of lines like that you can do

 sed 's/].*//' filename

Solution 2:

How about cut instead:

cat logfile | cut -d "]" -f1

Solution 3:

Something like

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

should do what you want. The \(.*\)] will capture all the text up to the ] into a remembered pattern and then the \1 substitutes it for the whole line.