2016-12-15 133 views
-1

如何用bash替换"\"字符串?用字符串替换“by ”

例如:

一个txt文件包含的文本,如:

Banana "hallo" Apple "hey" 

这必须被转换成:

Banana \"hallo\" Apple \"hey\" 

我试图

a=$(cat test.txt) 
b=${a//\"/\"}} 

但这并没有我RK。

这是如何工作的?

+0

你能告诉我们你到目前为止尝试过什么吗? – m0skit0

+0

例如a = $(cat test.txt)和b = $ {a // \“/ \”}}这当然不起作用 –

+0

您的问题对您的要求有点模糊。一般来说,你可以用'sed'或者''awk'来解决这个问题。还有其他的可能性。 –

回答

1

使用[ parameter expansion ]

string='Banana "hallo" Apple "hey"' 
echo "$string" 
Banana "hallo" Apple "hey" 
string=${string//\"/\\\"} # Note both '\' need '"' need to be escaped. 
echo "$string" 
Banana \"hallo\" Apple \"hey\" 

阿律解释

${var/pattern/replacement} 

替换varreplacementpattern一个发生。

${var//pattern/replacement} 

取代var所有出现patternreplacement

如果模式或替换包含字符如"/在shell中有特殊含义,则需要将它们转义以让shell将它们视为文字。