아래 출력을 연도, 월, 날짜별로 정렬하고 싶습니다. 나는 작동하지 않는 것 같은 몇 가지 조합을 시도했습니다.
아래 출력에서 두 번째 열은 날짜, 세 번째 열은 월, 네 번째 열은 연도입니다.
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
거의 비슷하지만 두 수준 모두에서 정렬 작업 순서가 잘못되었습니다.
- 연도(필드 4), 월(필드 3), 마지막으로 일(필드 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일