날짜 열을 기준으로 텍스트 파일 정렬

날짜 열을 기준으로 텍스트 파일 정렬

아래 예에서 텍스트 파일을 날짜별로 올바르게 정렬하려면 어떻게 해야 합니까? 문제는 이것이 실제로 작동하지 않는다는 것이고, 양식의 길이가 고정되어 있지 않기 때문에 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 .필드 구분 기호로 점 문자 사용

관련 정보