gpt4 book ai didi

regex - 用于从日志文件中提取数据的 Shell 程序

转载 作者:行者123 更新时间:2023-12-04 05:20:54 24 4
gpt4 key购买 nike

我将编写一个 shell 脚本来查看我的应用程序生成的日志文件,我需要从生成的日志中仅分离出函数名称和有关调用的最少信息。

日志文件格式将为 -0.0003 636488 +440 -> include_once(/var/www/public/const.php) /var/www/public/ajax_shop.php:2
现在,从这样的行中我想提取 - “include_once”在文件“ajax_shop.php”中的“2”行被调用

对于这种情况,我应该如何在 shell 脚本中使用正则表达式?

最佳答案

使用 sed 的一种方法:

sed 's/.*-> \([^(]*\).*:\(.*\)/\1 was called at line \2/' logfile
include_once was called at line 2.

\([^(]*\) => 这匹配直到遇到右括号。[^(]* => 表示一系列不是 '(' 的字符。

使用 awk:
$ awk -F"[>(:]" '{print $2 " was called at line " $NF}' logfile
include_once was called at line 2.

awk 使用多个分隔符 >,( 和 :。使用它,只需打印第二个字段和最后一个字段就变得简单了。

关于regex - 用于从日志文件中提取数据的 Shell 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13701793/

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