gpt4 book ai didi

python - 如何使用 awk 或 grep 在日志文件中捕获整个 Python 回溯?

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:32 25 4
gpt4 key购买 nike

日志文件包含许多 Python 回溯。我只关心由于 KevinCustomError 引发的回溯。文件中可能存在不止一个此类错误。

我如何使用 grep(另一个流行的 unix 命令)或它们的组合来转储我的特定错误的整个回溯?

这是一个示例日志文件。我想要此文件中的第 1-3 行。在真实的日志文件中,回溯要长得多。

Traceback (most recent call last):
File "<stdin>", line 1, in ?
KevinCustomError: integer division or modulo by zero
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ZeroDivisionError: integer division or modulo by zero

最佳答案

这是我尝试一起编写的 AWK 脚本。

awk '{a[NR]=$0}; /KevinCustomError/ {for(i=0; a[NR-i] !~ /Traceback/; i++) {} i++; while(i-- >= 0) {print a[NR-i]}}' logfile

或者,以文件形式。

{a[NR] = $0};

{
if ($0 ~ /KevinCustomError/)
{
for (i = 0; a[NR-i] !~ /Traceback/; i++)
{}
i++
while (i-- >= 0)
{
print a[NR-i];
}
}
}

用法类似:awk -f logscript.awk logfile

对AWK不是很熟悉,欢迎批评指正。基本上,它跟踪到目前为止读取的所有行,只是向后搜索以找到“Traceback”标记(如果你愿意,可以替换它),然后打印两者之间的所有内容(以正确的顺序)。

关于python - 如何使用 awk 或 grep 在日志文件中捕获整个 Python 回溯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17559418/

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