【发布时间】:2013-07-05 04:12:33
【问题描述】:
这个问题源于一个用例,将"替换为'',latex quirk。
如果里面有"(双引号),我通常使用'(单引号)将脚本括起来,虎钳诗句。但是,在这种情况下,这个脚本中同时出现了单引号和双引号,我让谷歌找到了处理它的正确方法。这个one 提供了解决方案。以下是正确的,但不是很可读的解决方案。
sed 's!"!'\'''\''!' {filename}
在让它工作之后,我开始认为这种尴尬来自于这种引用机制。因此,是否可以使用非印刷字符作为报价单?那么,我们就不需要再转义引用了。
【问题讨论】:
-
对于“正确”的一些定义:您缺少
s!!!的结束分隔符 -
@glennjackman 不错的收获。固定。
-
抱歉,我不明白这是怎么回事。
sed "s/\"/''/g"有什么问题?它比你的要好得多,一旦你理解了双引号的工作原理,它就很自然了。 -
@gniourf_gniourf 酷!我什至没有意识到这可以这么简单。我回家后会测试它。同样,
sed 's!"!\'\'!'也应该能做到这一点,对吧? -
@gniourf_gniourf 我的理解是错误的。我们不能直接在
''中使用反斜杠来转义'。在关于 shell 编程的第一课中,我们被告知''中的字符串是按字面解释的。