【发布时间】:2018-12-26 14:23:12
【问题描述】:
我目前正在迭代类似这样的值:
Administer PoolA servers :id=server@Pool@5@example.com
并想用“\”替换空格以使其看起来像这样(或在每个空格之前添加 \):
Administer\ PoolA\ servers\ :id=server@Pool@5@example.com
我知道正则表达式会帮助我做到这一点,但没有成功,任何帮助将不胜感激。
【问题讨论】:
-
这里的上下文是什么?通常,添加文字反斜杠是错误的(也就是说,没有完成您打算做的事情),特别是如果您希望以这种方式生成字符串将使您扩展包含的变量它不加引号并将结果解析为一个单词;然而,在正确引用的上下文中使用包含此类值的变量可能会解决问题。确保 BashFAQ #50 不适用。
-
另外,您同时标记了
bash和sh。这是两个不同的 shell,需要两个不同的答案: 最佳实践 bash 答案(假设您 真的 想要在字符串中添加文字反斜杠)将使用 parameter expansion 其中 @987654327 @不支持;请只标记其中一个。
标签: string bash shell replace sh