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

寻求Unix命令:按文件第二列日期降序排序

解决方案

直接使用Unix的sort命令即可完成按第2列日期降序排序的需求,命令如下:

sort -k2,2r file1.txt

如果需要保持输出的列对齐(和你示例中column -t的效果一致),可以组合命令:

sort -k2,2r file1.txt | column -t

参数说明

  • -k2,2:指定仅对第2列进行排序(k2,2表示从第2列开头到第2列结尾,避免跨列排序)
  • -r:启用降序排序(reverse)

为什么这个命令有效?

你的日期格式YYYY-MM-DD_HH:MM:SS是按时间从大到小的层级排列的(年→月→日→时→分→秒),这种格式的字典序和时间顺序完全匹配,因此直接用字符串排序就能得到正确的时间降序结果,不需要额外的日期解析工具。

示例执行结果

执行上述组合命令后,输出会是:

5.13.0.19S    2023-07-21_13:54:03  Activated  Current
5.13.0.18S    2023-07-21_13:23:39  Activated  Previous
5.13.0.17S    2023-07-21_13:09:48  Activated  Antecedent
5.13.0.16S    2023-07-21_12:57:04  Activated  Outdated
5.13.0.15S    2023-07-21_07:37:24  NA         Outdated

特殊情况说明

如果后续调整了日期格式(比如变为非标准的、无法直接按字典序排序的格式),可以借助awk先将日期转换为时间戳,再排序,例如:

awk '{split($2, dt, /[_:-]/); ts=mktime(dt[1] " " dt[2] " " dt[3] " " dt[4] " " dt[5] " " dt[6]); print ts, $0}' file1.txt | sort -nr | cut -d' ' -f2- | column -t

这个命令先将日期转换为Unix时间戳,按时间戳降序排序后再去掉时间戳列,还原原始内容并对齐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:57:12