Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

share|improve this question

3 Answers 3

up vote 10 down vote accepted
 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
share|improve this answer

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.

share|improve this answer

How about cut instead:

cat logfile | cut -d "]" -f1
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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