我想从linux日志中提取信息,这些日志被压缩在从file.gz到file.50.gz的文件中。然后zgrep检查的第一个日志文件是log.1.gz,然后是log.10.gz,最后是log.11.gz,等等。但这会打乱事件的顺序。有没有办法:a( 按自然升序进行zgrep检查?或b( 根据日期对匹配进行排序(日志中的每一行都遵循此日期模式yyyy/mm/dd hh:mm:ss.mss f.i:2021/10/12-0827:33.166324(
->由于这些日志是离线提取的,然后在windows机器(wsl(中进行处理,因此这些文件最后一次修改的日期/时间对所有文件都是相同的
我试过这样的事情,但没有运气(无论如何,我相信它只会考虑10位数的日期,把时间戳放在一边(:
zgrep -ih error log.* | sort -n -t"-" -k1.7,1.10 -k1.1,1.2 -k1.4,1.5
这将是命令zgrep -ih error log.{50..1}.gz log.gz
,它是zgreps log.50.gz,然后是.49gz,直到log.gz。这样,我首先看到具有旧时间戳的匹配,直到最后的最新
尝试超快速Syslog搜索
(假设您安装了防锈剂(
cargo install super_speedy_syslog_searcher
然后
s4 error log.*
超级快速系统日志搜索器将按解释的日期时间对日志消息进行排序。它可以读取.gz
文件。