这个sed替换的等效bash替换是什么?
STRING="HELLO-MY-NAME-IS"
$ echo $STRING | sed 's/-/%2d/g'
HELLO%2dMY%2dNAME%2dIS
我试过这个,但只适用于找到的第一个子字符串:
$ echo ${STRING/"-"/"%2d"}
HELLO%2dMY-NAME-IS
由于
答案 0 :(得分:3)
您可以尝试:
$ echo ${STRING//-/%2d}
HELLO%2dMY%2dNAME%2dIS
请注意,您在STRING
之后使用了一个斜杠,而需要其中两个斜线才能进行全局替换。
.
$ echo ${STRING/-/%2d}
HELLO%2dMY-NAME-IS
..
$ echo ${STRING//-/%2d}
HELLO%2dMY%2dNAME%2dIS