如何按 DD-MM-YYYY 日期对文件进行排序

Neo*_*aid 2 terminal date sort

在包含以下内容的文件中:

...
18-11-2018:othercharacters
10-11-2018:othercharacters
03-10-2018:othercharacters
30-10-2018:othercharacters
27-09-2018:othercharacters
03-12-2018:othercharacters
...
Run Code Online (Sandbox Code Playgroud)

命令 :

sort -t- -k2 -k1 
Run Code Online (Sandbox Code Playgroud)

不按日期排序,我错过了什么?

Sté*_*las 6

这就是推荐日期格式为 YYYY-MM-DD 的原因之一。

-k2对以第二个字段开头的行部分-k2,2进行排序,您只需要对第二个字段进行排序,因此:

sort -b -t- -k2,2 -k1,1
Run Code Online (Sandbox Code Playgroud)

或者:

sort -b -k1.7,1.10 -k1.4,1.6 -k1.1,1.2
Run Code Online (Sandbox Code Playgroud)

首先按年份排序(第一个字段的第 7 个到第 10 个字符(在忽略该字段中的前导空格后计数)-b,并使用默认字段分隔符(从非空白转换为空白)),然后是月份日。