如何在下面的示例中按日期正确对文本文件进行排序?问题是这sort -k1,1
实际上不起作用,而且我也不能使用点符号,sort -k1.6,1.9 -k1.4,1.4 -k1.1,1.2
因为表单没有固定长度。我想出了这个恐怖的东西
awk '{split($1,a,".");print a[1],a[2],a[3],$2}' test.txt | sort -k3,3 -k2,2 -k1,1 | awk '{print $1 "." $2 "." $3,$4}'
虽然它有效,但我不喜欢它的复杂性。这可以简化吗,最好只用sort
?
25.3.2020 26698
24.3.2020 22600
23.3.2020 19624
22.3.2020 17377
21.3.2020 15584
20.3.2020 13704
4.3.2020 407
3.3.2020 340
2.3.2020 262
1.3.2020 211
29.2.2020 200
28.2.2020 193
27.2.2020 170
26.2.2020 135
11.2.2020 74
10.2.2020 72
9.2.2020 64
8.2.2020 62
7.2.2020 62
6.2.2020 56
5.2.2020 53
2.2.2020 43
1.2.2020 38
31.1.2020 37
30.1.2020 34
28.1.2020 28
27.1.2020 20
答案1
尝试:
sort -n -t. -k3,3 -k2,2 -k1,1 test.txt
-n
按数字排序-t .
使用点字符作为字段分隔符