zsh 按倒序获取编号的日志文件

zsh 按倒序获取编号的日志文件

我有滚动日志文件,这些文件的编号使得最近的查询都在其中,x.log直到该文件达到阈值大小,然后将其重命名为x.log.1x.log开始新的操作。

我正在编写一个基本解析器,它按时间顺序遍历这些文件以提取一些信息。这意味着我需要按向后顺序读取文件。因此,从文件开始x.log.10逐行处理,然后x.log.9等等,直到我最终处理x.log具有最新日志条目的文件。

我有一个用于此目的的小 python 脚本,我只是想知道如何在 zsh CLI 上调用该命令。我知道我可以使用大括号扩展x.log.{10..1},但自然这不会包括最新的文件x.log

有任何想法吗?

答案1

Zsh 有全局限定符可用于修改排序顺序。例如,您可以使用

 print -rl x.log*(nOn)

打印文件n启用数字全局标志 ( n),订购者n我(On)。这似乎将非数字x.log放在我的区域设置的最后。

或者,不要依赖名称的数字顺序,而是使用文件的实际名称修改次数:

print -rl x.log*(Om)

N您可能还希望添加(null glob) 限定符。man zshexpn详情请参阅。

相关内容