我有滚动日志文件,这些文件的编号使得最近的查询都在其中,x.log
直到该文件达到阈值大小,然后将其重命名为x.log.1
并x.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
详情请参阅。