Bash 脚本:用字符串中的“\”替换空格

San*_*vel 2 string bash shell replace sh

我目前正在迭代类似于此的值:

Administer PoolA servers :id=server@Pool@5@example.com
Run Code Online (Sandbox Code Playgroud)

并想用“\”替换空格以使其看起来像这样(或在每个空格之前添加\):

Administer\ PoolA\ servers\ :id=server@Pool@5@example.com
Run Code Online (Sandbox Code Playgroud)

我知道正则表达式会帮助我做到这一点,但没有成功,任何帮助将不胜感激。

Bar*_*mar 5

没有必要为此使用正则表达式。您可以使用 bash参数扩展 运算符进行字符串替换。

$ str='Administer PoolA servers :id=server@Pool@5@example.com'
$ newStr="${str// /\\ }"
$ echo "$newStr"
Administer\ PoolA\ servers\ :id=server@Pool@5@example.com
Run Code Online (Sandbox Code Playgroud)