我通过 Java 的 Log4j 和 Python 的日志记录模块生成的日志做了很多 grepping。两者都创建包含换行符的堆栈跟踪,导致日志条目跨越多行。这使得使用 grep 很难找到内容,并且违反了传统的日志文件格式规则(每行一个条目)。
如果我在堆栈跟踪中发现一些有趣的东西,我必须打开整个日志文件(可能非常大)并浏览到 grep 找到的行,然后向上滚动以找到日志条目的开头。这感觉很笨拙。
有没有更好的方法来处理这个?也许以某种方式从堆栈跟踪中删除换行符?
感谢您的任何建议!
我通过 Java 的 Log4j 和 Python 的日志记录模块生成的日志做了很多 grepping。两者都创建包含换行符的堆栈跟踪,导致日志条目跨越多行。这使得使用 grep 很难找到内容,并且违反了传统的日志文件格式规则(每行一个条目)。
如果我在堆栈跟踪中发现一些有趣的东西,我必须打开整个日志文件(可能非常大)并浏览到 grep 找到的行,然后向上滚动以找到日志条目的开头。这感觉很笨拙。
有没有更好的方法来处理这个?也许以某种方式从堆栈跟踪中删除换行符?
感谢您的任何建议!
grep 'your expressing and file name' | less
这将首先向您显示小筹码。然后进入了解更多。
你也可以做文件名的“头”或“尾”
tail -1000 'filename'
这显示了该文件的最后(尾)1000 行。
如果你有 GNU grep,你可以使用-C
(AKA --context
) 开关:
-C NUM , --context = NUM
打印 NUM 行输出上下文。在连续的匹配组之间放置一个包含 -- 的行。
我不确定它是否-C
是 POSIX grep 的一部分,但值得一试。