Yanis Boucherit
Yanis Boucherit

Reputation: 714

Replace substring with 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 ?

Upvotes: 8

Views: 50197

Answers (2)

Vijay
Vijay

Reputation: 67211

> echo $SER2
test:blabla
> echo $SER2 | sed 's/\([^:]*:\).*/\1replace/g'
test:replace
>

Upvotes: 4

Chris Seymour
Chris Seymour

Reputation: 85765

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

Upvotes: 19

Related Questions