日付列に基づいてテキストファイルを並べ替える

日付列に基づいてテキストファイルを並べ替える

次の例では、テキストファイルを日付で正しく並べ替えるにはどうすればよいですか?問題は、これが実際には機能しないこと、フォームの長さが固定されていないため、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 .フィールド区切り記号でドット文字を使用する

おすすめ記事