用sed替换substring

时间:2013-01-07 11:10:59

标签: shell sed sh

我有一个这样的字符串:

test:blabla

对于sed,我想用':'替换之后的东西。

我可以设法替换一个单词,但不能替换':'之后的单词。我在网上搜索了答案,但我没有找到任何东西。

任何帮助?

2 个答案:

答案 0 :(得分:9)

使用:sed 's/:.*/:replaceword/'

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

或者对于您只想替换test test:blabla test使用:之后的字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

答案 1 :(得分:3)

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