You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用sort命令按月份逆序+日期逆序排序日志行?

日志日期排序问题解决方法

原始日志内容

Oct 29 23:14:39 
Oct 30 19:45:15 
Oct 31 13:15:19 
Nov 1  10:34:15
Nov 2  18:39:20
Nov 3  12:34:59 
Nov 4  16:34:59 
Nov 5  20:34:59 

错误的排序结果

执行sort -r -k2后得到的结果:

Nov 5
 Nov 4
 Nov 3
 Oct 31
 Oct 30
 Oct 29
 Nov 2
 Nov 1

期望的排序结果

希望得到按月份逆序(Nov在前、Oct在后),同月份内日期逆序的结果:

Nov 5
Nov 4
Nov 3
Nov 2
Nov 1
Oct 31
Oct 30
Oct 29

正确的排序命令

你需要同时按月份名称逆序和日期数字逆序排序,使用sort的-M(按月份名称排序)、-r(逆序)参数,并指定多关键字段的排序规则:

sort -k1,1Mr -k2,2nr logfile.txt

参数解释

  • -k1,1Mr:仅对第1个字段(月份)按名称排序(M),并设置逆序(r),1,1限定仅作用于第1个字段,避免干扰后续排序逻辑。
  • -k2,2nr:仅对第2个字段(日期)按数字排序(n),并设置逆序(r),2,2限定仅作用于第2个字段。

执行该命令后,就能得到你期望的排序结果:所有Nov的日志按日期从5到1排列,之后是Oct的日志按日期从31到29排列。

内容的提问来源于stack exchange,提问作者Dennis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:01:55