【发布时间】:2013-06-07 15:44:32
【问题描述】:
在包含数千个 PHP 文件的项目中,我需要在每个 catch 之后插入一条调试指令。
我要匹配模式
catch (
所以在每个匹配的模式之后,我想插入指令:
Reporter::send_exception($e);
我一直在尝试使用 sed 来完成此操作,但我一直未能成功。
这是我正在使用的 sed 命令:
sed -e '/catch \(/{:a,n:\ba;i\Reporter::send_exception\(\$e\);\g' -e '}' RandomFile.php
任何帮助撰写本文将不胜感激!
我在 Stack Overflow 中看到了针对同一问题的其他解决方案,但这些解决方案都没有奏效。
谢谢
编辑
基本上我的文件看起来很像这样:
try {
do_something();
} catch ( AnyKindOfException $e) {
Reporter::send_exception($e); // Here's where I want to insert the line
// throws generic error page
}
这就是我想匹配catch \(*$的原因
然后插入
Reporter::send_exception($e)
【问题讨论】:
-
不要逃避括号
-
您是在匹配模式之后的同一行插入,还是要在下一行插入?
-
我想在下一行插入,我将编辑我的问题以提供更多上下文
-
sed'si命令在匹配模式的行之前插入文本,所以这绝对不是你想要的。