Python 在日志中进行Grepping以获取用户、路径

Python 在日志中进行Grepping以获取用户、路径,python,regex,grep,Python,Regex,Grep,我设置了一些日志来跟踪用户行为。下面是我的日志文件中的示例行的外观: [INFO] User david@gmail.net DELETE /api/upitem/126926 如何获取用户名david@gmail.com在行中,url/api/upitem/在url中 类似于 `grep 'david@gmail.com' ./file.log | grep '\/api\/upitem\/ ./file.log1` 进行此日志搜索/分析的最佳方法是什么?您最好使用awk,如下所示: ca

我设置了一些日志来跟踪用户行为。下面是我的日志文件中的示例行的外观:

[INFO] User david@gmail.net DELETE /api/upitem/126926
如何获取用户名
david@gmail.com
在行中,url
/api/upitem/
在url中

类似于

`grep 'david@gmail.com' ./file.log | grep '\/api\/upitem\/ ./file.log1`

进行此日志搜索/分析的最佳方法是什么?

您最好使用awk,如下所示:

cat file.log | awk '{ if ($3=="david@gmail.net" && $5 ~ /api\/upitem/) print }'

您最好使用awk,如下所示:

cat file.log | awk '{ if ($3=="david@gmail.net" && $5 ~ /api\/upitem/) print }'

您可以在启用
-p
参数的情况下使用单个grep命令来执行此操作

grep -P '^(?=.*\bdavid@gmail\.com\b)(?=.*/api/upitem/)' ./file.log

您可以在启用
-p
参数的情况下使用单个grep命令来执行此操作

grep -P '^(?=.*\bdavid@gmail\.com\b)(?=.*/api/upitem/)' ./file.log

为什么要将
python
标记到这个问题上?您想要python还是grep解决方案?@PadraicCunningham任何一个都可以。我在应用程序中使用python/django,因此可以使用它或grepdavid@gmail.net“in-line和“/api/upitem/12692”in-line可以做你想做的事为什么你要给这个问题加上
python
?你想要python还是grep解决方案?@padraickenningham任何一个都可以。我在应用程序中使用python/django,因此可以使用它或grepdavid@gmail.net“行内”和“/api/upitem/12692”行内可以满足您的要求