我最近下载了一个相册网站模板,我想让我那些不懂技术的生活伴侣可以轻松地添加照片。
它使用一个 XML 文件,每次添加照片时都需要进行编辑,我编写的更新脚本几乎完成了,只需要将所有单引号 ( '
) 更改为双引号 ( "
)。
我找到并尝试了sed "s/\"/'/g"
但无济于事,收到“未终止的报价错误”。任何帮助都将不胜感激。
答案1
您需要一个反斜杠引用引号,在单引号外面:
sed 's/"/'\''/g'
当字符串并列时,它们会变成一个字符串。因此,你可以使用“”或“'”或\来以不同的方式引用各个部分。
答案2
您可以使用tr
来tr
从一个字符集转换到另一个字符集。(注意:这里的字符集是指“一组字符”,而不是“字符编码及其相关字形”,例如 ISO-8859-1。)您几乎肯定不需要sed
为此使用正则表达式。
您的问题有些不清楚,您想朝哪个方向走,因为命令sed
会执行与您所说的目标相反的操作,但要从 翻译为'
,"
您可以使用(避免在这里无用地使用cat
):
tr \' \" <inputfile >outputfile
要从 翻译"
为'
,请使用:
tr \" \' <inputfile >outputfile
请注意,反斜杠很重要,因为它们可以防止引号被 shell 特殊解释。当tr
看到参数时,反斜杠将被删除。
请注意不要盲目地重写整个 XML 文件;这似乎可能会导致不良行为。