将文字空间替换为正则表达式空间

将文字空间替换为正则表达式空间

我想改变一个字符串

This is a string

This\sis\sa\sstring

\但无论我是否逃避 tr 对我都不起作用

string="This is a string"
regex=$(echo "$string" | tr " " "\\s")
printf "$regex"

我刚刚得到

Thississasstring

答案1

我认为你的方法的主要问题是tr音译单身的字符 - 所以即使你成功引用'\\s'它也不会按照你想要的方式工作(它可能只是用 替换空格\)。

在这种情况下,您根本不需要外部实用程序:

string="This is a string"
echo "${string// /\\s}"
This\sis\sa\sstring

相关内容