相当于此sed替换的bash字符串替换

时间:2014-01-22 10:47:04

标签: regex bash shell sed

这个sed替换的等效bash替换是什么?

STRING="HELLO-MY-NAME-IS"
$ echo $STRING | sed 's/-/%2d/g'
HELLO%2dMY%2dNAME%2dIS

我试过这个,但只适用于找到的第一个子字符串:

$ echo ${STRING/"-"/"%2d"}
HELLO%2dMY-NAME-IS

由于

1 个答案:

答案 0 :(得分:3)

您可以尝试:

$ echo ${STRING//-/%2d}
HELLO%2dMY%2dNAME%2dIS

请注意,您在STRING之后使用了一个斜杠,而需要其中两个斜线才能进行全局替换。

               .
$ echo ${STRING/-/%2d}
HELLO%2dMY-NAME-IS
               ..    
$ echo ${STRING//-/%2d}
HELLO%2dMY%2dNAME%2dIS