gpt4 book ai didi

regex - 如何在匹配模式后插入字符串

转载 作者:行者123 更新时间:2023-12-01 09:29:41 25 4
gpt4 key购买 nike

我需要在包含数千个 PHP 文件的项目中的每个 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\a 命令执行此操作,该命令允许您附加该行。语法是:

sed '/PATTERN/ a\
Line which you want to append' filename

所以你的情况是:

sed '/catch (/ a\
Reporter::send_exception($e);' filename

测试:

$ cat fff
adfadf
afdafd
catch (
dfsdf
sadswd

$ sed '/catch (/ a\
Reporter::send_exception($e);' fff
adfadf
afdafd
catch (
Reporter::send_exception($e);
dfsdf
sadswd

关于regex - 如何在匹配模式后插入字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17050091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com