Ubuntu 命令行将单引号 (') 替换为双引号 (")

Ubuntu 命令行将单引号 (') 替换为双引号 (")

我最近下载了一个相册网站模板,我想让我那些不懂技术的生活伴侣可以轻松地添加照片。

它使用一个 XML 文件,每次添加照片时都需要进行编辑,我编写的更新脚本几乎完成了,只需要将所有单引号 ( ') 更改为双引号 ( ")。

我找到并尝试了sed "s/\"/'/g"但无济于事,收到“未终止的报价错误”。任何帮助都将不胜感激。

答案1

您需要一个反斜杠引用引号,在单引号外面:

sed 's/"/'\''/g'

当字符串并列时,它们会变成一个字符串。因此,你可以使用“”或“'”或\来以不同的方式引用各个部分。

答案2

您可以使用trtr从一个字符集转换到另一个字符集。(注意:这里的字符集是指“一组字符”,而不是“字符编码及其相关字形”,例如 ISO-8859-1。)您几乎肯定不需要sed为此使用正则表达式。

您的问题有些不清楚,您想朝哪个方向走,因为命令sed会执行与您所说的目标相反的操作,但要从 翻译为'"您可以使用(避免在这里无用地使用cat):

tr \' \" <inputfile >outputfile

要从 翻译"',请使用:

tr \" \' <inputfile >outputfile

请注意,反斜杠很重要,因为它们可以防止引号被 shell 特殊解释。当tr看到参数时,反斜杠将被删除。

请注意不要盲目地重写整个 XML 文件;这似乎可能会导致不良行为。

相关内容