0

我想从 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 fi: 2021/10/12-08:27:33.166324)

-> 由于这些日志被提取以脱机工作,然后在 Windows 机器 (wsl) 中处理,因此这些文件的最后修改日期/时间对于所有这些文件都是相同的

我正在尝试这样的事情,但没有运气(无论如何我相信它只会考虑 10 位数的日期,将时间戳放在一边):

zgrep -ih error log.* | sort -n -t"-" -k1.7,1.10 -k1.1,1.2 -k1.4,1.5

4

1 回答 1

0

这将是命令zgrep -ih error log.{50..1}.gz log.gz,它是 zgreps log.50.gz,然后是 .49.gz,直到 log.gz。这样,我首先看到具有较旧时间戳的匹配,直到最后的最新

于 2021-11-29T19:55:42.760 回答