如何在#符号前面插入反斜杠?

如何在#符号前面插入反斜杠?

在 bash 编程中,给定一个变量,例如varA,它存储包含#符号的字符串。假设varA包含这个值:ASD# 1,我需要\在 的前面附加一个反斜杠#,所以输出可能有这个:ASD\# 1。以下代码是为了实现我的目标,只是字符串替换似乎不起作用,并且我无法将 sed 命令的输出分配给另一个变量。有看到这个吗?

varA="ASD# 1"
echo $(sed s/\#/\\#/g <<< ${varA})

答案1

你的sed表达中缺少引号。

尝试:

$ varA="ASD# 1"
$ echo "$(sed 's/#/\\#/g' <<< "${varA}")"
ASD\# 1

答案2

sed仅使用一个变量会产生开销。在bash你可以使用${varA/\#/\\\#}.

相关内容