String 替换“;通过\";一串

String 替换“;通过\";一串,string,bash,replace,String,Bash,Replace,如何使用bash将字符串中的“替换为\” 例如: txt文件包含如下文本: Banana "hallo" Apple "hey" 这必须转换为: Banana \"hallo\" Apple \"hey\" 我试过了 a=$(cat test.txt) b=${a//\"/\"}} 但这不起作用 这是如何工作的?使用 lil解释 ${var/pattern/replacement} 将var中出现的模式替换为replacement ${var//pattern/replacement}

如何使用bash将字符串中的
替换为
\”

例如:

txt文件包含如下文本:

Banana "hallo" Apple "hey"
这必须转换为:

Banana \"hallo\" Apple \"hey\"
我试过了

a=$(cat test.txt)
b=${a//\"/\"}}
但这不起作用

这是如何工作的?

使用

lil解释

${var/pattern/replacement}
var
中出现的
模式
替换为
replacement

${var//pattern/replacement}
var
中出现的所有
模式
替换为
replacement


如果模式或替换包含在shell中具有特殊含义的字符,如
/
,则需要对其进行转义,以使shell将其视为文本。

您能告诉我们您迄今为止尝试了什么吗?例如,a=$(cat test.txt)和b=${a/\“/\”}}这当然不行。您的问题对您的需求有点模糊。一般来说,您可以使用
sed
awk
解决类似的问题。还有其他可能性。问题是,“这是一个特殊字符。”。所以朱利安·洛佩兹提出的解决方案是不可能的。@AnneK。你其实很接近。但是如果您想要文本
`或
,则需要转义
`和
“``
${var//pattern/replacement}