perl 替换中的反斜杠

backslashes in perl substitution

我正在尝试使用 perl 单行代码更改一堆 .tex 文件中的一些命令。我得到的结果如下:

perl -pi -e "s/\Q\linenum{some more stuff}\E/\Q\uln\E/g" *tex

这导致 \lLn 而不是预期的替换模式 \uln。显然,虽然 \Q\E 处理其他特殊字符,但它们不处理 \l \u 更改下一个字符的大小写,我该怎么做那个?

\Q\E 最适合 \Q$var\E。在其他地方,您可以使用 \ 来转义需要转义的字符。

perl -i -pe's/\linenum\{some more stuff\}/\uln/g' *tex