연도, 월, 날짜별로 출력 정렬

연도, 월, 날짜별로 출력 정렬

아래 출력을 연도, 월, 날짜별로 정렬하고 싶습니다. 나는 작동하지 않는 것 같은 몇 가지 조합을 시도했습니다.

아래 출력에서 ​​두 번째 열은 날짜, 세 번째 열은 월, 네 번째 열은 연도입니다.

sort다음과 같은 방법으로 명령을 적용 하려고 합니다 .

sort -nk2 -Mk3 -nk4

하지만 오류가 발생하여 작동하지 않습니다.

sort: options '-Mn' are incompatible

이것은 내 샘플 데이터 파일입니다.

adcblz01 14 Mar 2018  
adcblz03 23 Nov 2018  
aktestlb02 26 Aug 2019    
ckicbrwlz1 23 Mar 2018   
ckilabbrwlb1 23 Mar 2018   
bhuiflz28 09 Mar 2017  
bhuiflz47 09 Mar 2017  
bhuiflz48 09 Mar 2017  
olkeflb24 23 Jul 2019  
olkeflz46t2 09 Mar 2017  
rrjugflb7 03 Jul 2019

답변1

거의 비슷하지만 두 수준 모두에서 정렬 작업 순서가 잘못되었습니다.

  1. 연도(필드 4), 월(필드 3), 마지막으로 일(필드 2)별로 정렬해야 합니다.
  2. 전역적으로가 아닌 키에만 정렬 한정자( n및 )를 적용해야 합니다.M

결과 정렬 명령은 다음과 같습니다.

sort -k4n -k3M -k2n

sort: options '-Mn' are incompatible원래 명령에서 오류가 발생하는 이유가 궁금하다면 sort -nk2 -Mk3 -nk4옵션이 주로 왼쪽에서 오른쪽으로 구문 분석되기 때문입니다. 사실 당신이 썼어요 sort -n -k2 -M -k3 -n -k4. 이제 키별 한정자 대신 플래그 -n와 한정자를 전역 작업으로 지정하는 것을 더 쉽게 확인할 수 있습니다 .-M

답변2

당신은 다음을 찾고 있을 수 있습니다:

$ sort -k4n -k3M -k2n

산출:

bhuiflz28 2017년 3월 9일
bhuiflz47 2017년 3월 9일
bhuiflz48 2017년 3월 9일
olkeflz46t2 2017년 3월 9일
adcblz01 2018년 3월 14일
ckicbrwlz1 2018년 3월 23일
ckilabrwlb1 2018년 3월 23일
adcblz03 2018년 11월 23일
rrjugflb7 2019년 7월 3일
olkeflb24 2019년 7월 23일
aktestlb02 2019년 8월 26일

관련 정보