Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace substring with sed

Tags:

shell

sh

sed

I have a string like this :

test:blabla

And with sed, I want to replace what's after the ':' with something else.

I can manage to replace a word, but not the one after the ':'. I searched on the internet for the answer, but I didn't found anything.

Any help ?

like image 666
Yanis Boucherit Avatar asked Jan 07 '13 11:01

Yanis Boucherit


Video Answer


1 Answers

Use: sed 's/:.*/:replaceword/'

$ echo test:blabla | sed 's/:.*/:replaceword/'
test:replaceword

Or for the situation test test:blabla test where you only want to replace the word following : use sed 's/:[^ ]*/:replaceword/':

$ echo "test test:blabla test" | sed 's/:[^ ]*/:replaceword/'
test test:replaceword test

# Use the g flag for multiple matches on a line
$ echo "test test:blabla test test:blah2" | sed 's/:[^ ]*/:replaceword/g'
test test:replaceword test test:replaceword
like image 190
Chris Seymour Avatar answered Sep 28 '22 11:09

Chris Seymour