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

时间:2018-07-18 15:30:18

标签: string bash shell replace sh

我目前正在迭代一个与此类似的值:

Administer PoolA servers :id=server@Pool@5@example.com

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

Administer\ PoolA\ servers\ :id=server@Pool@5@example.com

我知道regex可以帮助我做到这一点,但失败了,将不胜感激。

2 个答案:

答案 0 :(得分:3)

为此无需使用正则表达式。您可以使用bash Parameter Expansion运算符替换字符串。

$ str='Administer PoolA servers :id=server@Pool@5@example.com'
$ newStr="${str// /\\ }"
$ echo "$newStr"
Administer\ PoolA\ servers\ :id=server@Pool@5@example.com

答案 1 :(得分:0)

mystring="Administer PoolA servers :id=server@Pool@5@example.com"
echo "$mystring" | sed "s/ /\\\ /g"
# --> Administer\ PoolA\ servers\ :id=server@Pool@5@example.com