12

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.

19
 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
12

How about cut instead:

cat logfile | cut -d "]" -f1
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.

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.