我有一段文字,我想取消嵌套。
\caption[Server HTTP responses]{Server HTTP responses\label{fig:http-status}}
我想 sed 碰撞最后的 } 以便它在标签前面开始,如下所示:
\caption[Server HTTP responses]{Server HTTP responses}\label{fig:http-status}
对我的测试文本使用正则表达式编辑器,似乎:
(\\label\{fig:[a-zA-z0-9 -]{1,}\})\}$
替换为
\}\1
会成功的。这适用于 debuggex.com 和 Mozilla 正则表达式测试器。
然而,当我用 sed 测试它时(我是 sed 的新手,所以请在这里放轻松),我使用
cat ./file.tex | sed -e 's@(\\label\{fig\:[a-zA-z0-9 -]{1,}\})\}$@\}\1@g' > test_output.txt
返回:
sed: -e expression #1, char 47: Invalid content of \{\}
我在这里做错了什么?是否有更简单的方法来运行大量文本文件以替换正则表达式?