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

sort命令使用问题:如何按日.月.年格式日期正确排序结果

解决方法

首先修正你命令的结构问题:你之前把sort放在了子shell外部,导致VAR只捕获了未排序的grep输出,sort根本没作用于目标内容。必须将sort整合到管道链中,让它处理grep的结果后再存入变量。

针对日.月.年格式的日期,要按年→月→日升序排序,你需要精确指定sort的排序键,避开前缀字符串的干扰。正确的命令如下:

VAR="$(find . -maxdepth 2 -type f -name 'filename' | xargs grep -o -m 1 "♦SOMETEXT►►..........♦" | sort -t '.' -k 3.1,3.4n -k 2,2n -k 1.11,1.12n)"

参数说明:

  • -t '.':以.作为字段分隔符
  • -k 3.1,3.4n:取第三个字段的前4个字符(即年份),按数字升序排序
  • -k 2,2n:取第二个字段(即月份),按数字升序排序
  • -k 1.11,1.12n:取第一个字段的第11-12个字符(即日期,因为前缀♦SOMETEXT►►共10个字符),按数字升序排序

这样处理后,结果会按照你预期的顺序排列:先11.12.2011,再01.01.2012,最后11.01.2012。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:42:43