如何使用bash将字符串中的"
替换为\"
?
例如:
txt文件包含如下文本:
Banana "hallo" Apple "hey"
这必须转化为:
Banana \"hallo\" Apple \"hey\"
我试过了
a=$(cat test.txt)
b=${a//\"/\"}}
但这不管用。
这是怎么回事?
使用[参数扩展]
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}
将var
中出现的模式
替换为替换
。
${var//pattern/replacement}
将var
中出现的所有模式
替换为replacement
。
如果模式或替换包含在shell中具有特殊含义的字符,如"
或/
,则需要对它们进行转义,以便shell将它们视为文字。
给定一个包含项a和B的字符串M,我想用每个a来代替B,用每个B来代替a来代替M'。天真地,人们会尝试用B代替A,然后用A代替B,但在这种情况下,M'只包含A。我可以想到替换这些项,并记录它们的位置,这样这些项就不会再被替换了。当我们只有A和B可以替换时,这是有效的。但是如果我们需要替换两个以上的项,而且它们的长度不同,那么这就变得很棘手了。 所以我想这样做: 我们将M作为输入字符串,并将R=[(x
如何删除字符串中任意位置的圆括号?
如何用单个字符替换n/重复字符?所有特殊字符
假设我有一个字符串,如下所示: 我想把“abcd”换成“dddd”。我曾试图做这样的事: 它不起作用。有什么建议吗? 编辑:更具体地说,我在Java工作,我试图解析超文本标记语言文档,具体地说
为什么我在字符串开始时获得额外的而在字符串之间获得 我在期待:
我最近在CodeWars中遇到了这个问题 给定一个数字串,您应该用“0”替换5以下的任何数字,用“1”替换5及以上的任何数字。返回结果字符串。注意:输入永远不会是空字符串 我来自 Python 背景,我们可以使用 if 语句进行索引来解决这个特定问题,如下所示: 但当我尝试在Swift中使用索引(如Python风格)时,我失败了……经过一段时间的研究,我发现了这个方法:<code>String。r