我写在乳胶文件和我正在寻找一种方法来自动删除我的文档一些色彩。当有\文本颜色中的文本添加{|}更新{...},它应该保持和\文本颜色内evreything {}删除{...}应予以删除。当然\ textcolor也应该被删除。BASH:如何提取特定的大括号之间的文本,并让对方
我只是找不到一个正则表达式将匹配。它只是采取的第一个和该行的最后一个大括号不cheking他们属于文本颜色。
这是我的代码:
for i in [email protected]
do
sed -i 's/\\textcolor{update}{\(.*\)\}/\1/g' $i
sed -i 's/\\textcolor{add}{\(.*\)\}/\1/g' $i
sed -i 's/\\textcolor{delete}{\(.*\)\}//g' $i
done
举例来说,如果我有这样的:
这不会改变和\ {文本颜色UDPATE} {这是我修改 \ textbf {文字}!} \ {VSPACE 0.3}
我得到这个:
这不会改变,这是我修改\ textbf {文本}}! \ {VSPACE 0.3
我应该得到这样的结果:
这不会改变,这是我修改过的\ textbf {text} !! \ {VSPACE 0.3}
此外,我也想能够得到这一结果:
这不会改变和\ {文本颜色删除} {这是我删除 \ textbf {文本}!} \ {VSPACE 0.3}
给
这不会改变和\ {VSPACE 0.3}
到目前为止,我竭力避免与一个200行的脚本这个问题,但我敢肯定有使用sed例如一个简单的方法。
非常感谢!
尝试'sed的 'S/\\的文字颜色{更新} {\([^}] \ + \)\}/\ 1 /'':) – 2014-11-25 10:26:06
我很抱歉不工作(一个大括号是不是在正确的地方),但它是接近:) – 2014-11-26 19:32:20