当前位置: 首页 > 知识库问答 >
问题:

在字符串[重复]中替换"by\"

陈志
2023-03-14

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

例如:

txt文件包含如下文本:

Banana "hallo" Apple "hey"

这必须转化为:

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

我试过了

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

但这不管用。

这是怎么回事?

共有1个答案

乐山
2023-03-14

使用[参数扩展]

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