如何用sed替换{&"x27;{\i}为{&"x27;i}
我正在使用Papers3导出Bibtex库,但某些重音符号存在错误。许多错误都缺少大括号,因此在我运行Bibtex时出现编译错误。以下是bib文件中的错误示例:如何用sed替换{&"x27;{\i}为{&"x27;i},sed,special-characters,bibtex,Sed,Special Characters,Bibtex,我正在使用Papers3导出Bibtex库,但某些重音符号存在错误。许多错误都缺少大括号,因此在我运行Bibtex时出现编译错误。以下是bib文件中的错误示例: author = {Combi, J A and Rib{\'o}, M and Mart{\'{\i}, J and Chaty, S.}, 我想替换我的文件(agn.bib)中的所有实例,方法如下: sed "s/{\'{\i}/{\'i}/g" agn.bib 但是这没有任何作用,我在堆栈溢出上找不到解决方法。您必须两次跳过反
author = {Combi, J A and Rib{\'o}, M and Mart{\'{\i}, J and Chaty, S.},
我想替换我的文件(agn.bib)中的所有实例,方法如下:
sed "s/{\'{\i}/{\'i}/g" agn.bib
但是这没有任何作用,我在堆栈溢出上找不到解决方法。您必须两次跳过反斜杠;一次用于shell,一次用于sed
:
sed -i "s/{\\\\'{\\\\i}/{\\\\'i}/g" file
因为反斜杠是两者的元字符
当您说sed“\\\\”
时,由于双引号,sed
实际上接收\\\
,并且根据基本正则表达式的规则,将反斜杠视为文字字符。这可能适用于您(GNU-sed):
通过引用替换一个
\
,即\
,并通过将其传递到外壳来匹配一个'
,即\'谢谢。这很有效,似乎是最干净的解决方案。完成。再次感谢。
sed -i 's/{\\'\''{\\i}/{\\'\''i}/g' file