7

私はこのような文字列を持っています:

test:blabla

そして、sed では、「:」の後にあるものを別のものに置き換えたいと考えています。

単語を置き換えることはできますが、「:」の後の単語を置き換えることはできません。インターネットで答えを探しましたが、何も見つかりませんでした。

助けはありますか?

4

2 に答える 2

17

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

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

または、use 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
于 2013-01-07T11:13:21.770 に答える
4
> echo $SER2
test:blabla
> echo $SER2 | sed 's/\([^:]*:\).*/\1replace/g'
test:replace
>
于 2013-01-07T11:14:01.683 に答える