我想从linux日志中提取信息,这些日志被压缩在从file.gz到file.50.gz的文件中。然后,第一个日志文件zgrep检查是log.1.gz,然后是log.10.gz,然后是log.11.gz,等等。但是这会扰乱事件的时间顺序。有没有办法:( a)按自然上升顺序检查zgrep?或b)根据日期对匹配进行排序(日志中的每一行遵循此日期模式为yyyy/mm/dd:mm:ss.mss f.i: 2021/10/12-08:27:33.166324)
由于这些日志被解压缩为脱机工作,然后在windows机器中进行处理,因此对所有这些文件进行最后修改的日期/时间是相同的。
我尝试过这样的方法,但没有运气(无论如何,我相信它只会考虑10位数的日期,而不考虑时间戳):
zgrep -ih error log.* | sort -n -t"-" -k1.7,1.10 -k1.1,1.2 -k1.4,1.5
发布于 2021-11-29 19:55:42
这将是命令zgrep -ih error log.{50..1}.gz log.gz,它将zgreps log.50.gz,然后是.49.gz,直到log.gz。这样,我就可以先用旧的时间戳来看比赛,直到比赛结束时的最新比赛为止。
发布于 2022-10-11 06:34:17
试试https://crates.io/crates/super_speedy_syslog_searcher
(假设你有锈蚀装置)
cargo install super_speedy_syslog_searcher然后
s4 error log.*将根据解释的日期时间对日志消息进行排序。它可以读取.gz文件。
https://stackoverflow.com/questions/70066282
复制相似问题