이 파일에서는 정렬 명령이 예상대로 작동하지 않습니다.

이 파일에서는 정렬 명령이 예상대로 작동하지 않습니다.

정렬 명령을 실행하려고 하는데 이 파일에서는 작동하지 않습니다. 이유는 모르겠습니다.

 sort -n -k+3 employee > hired2

이는 고용된 달에 따라 직원 순위를 매겨야 한다고 지침은 말했다.

이것이 파일입니다. MM/DD/YEAR 날짜

mgt Cooper John     06151995   66000
mgt Davidson Darla  04151992   69500
mgt MacDonald George  06151985 70000
act Smith Thomas  04102002     56000
act Smith Alecia  04121991     65000
mis MacLeod Janice  01021977   90000
mis Mack Joe  02252003         85000
mis Winslow Sarah  02151995    58000
adm Smith Dexter  01021975    100000
mis Benneth Joan  08152001     79000
mgt Neason Elizabeth  10251998 65500
act NeSmith Donald  11301966   99500

이것이 내가 얻는 것입니다:

act NeSmith Donald  11301966    99500
act Smith Alecia    04121991    65000
act Smith Thomas    04102002    56000
adm Smith Dexter    01021975    100000
mgt     Cooper John     06151995    66000
mgt Davidson Darla  04151992    69500
mgt MacDonald George    06151985    70000
mgt Neason Elizabeth    10251998    65500
mis Bennett Joan    08152001    79000
mis Mack Joe    02252003    85000
mis MacLeod Janice  01021977    90000
mis Winslow Sarah   02151995    58000

무엇이 잘못되었을 수 있나요? 간격 문제 아닌가요?

답변1

잘못된 열을 기준으로 정렬하고 있습니다. 열 번호는 1부터 시작하며 월 열은 4번째입니다. 그러니 이것을 시도해 보세요:

sort -n -k+4 employee > hired2

답변2

일부 이전 버전의 정렬은 0부터 필드 계산을 시작하고 +n 기호를 키의 시작 필드로 사용합니다. 최신 버전의 sort는 사용되지 않는 기호를 허용할 수 있지만 0부터 계산되기 시작하는지 확인하지 않았습니다. 어쩌면 코치가 이전 버전을 언급하거나 사용하고 있는 것일 수도 있습니다... 건배, drl

답변3

지침에 따르면 고용된 달을 기준으로 직원을 정렬해야 합니다.

어떤 명령인가요? 여기서 나는 다음을 사용하여 예상 결과를 얻었습니다.

$ sort -n -k 4 <file>

테스트 데이터 복사/붙여넣기를 기반으로 합니다. 이는 파일에 탭(있는 경우) 대신 공백이 포함되어 있음을 의미합니다.

답변4

읽을 수 있어야 하는 경우 열을 정렬합니다.

$ column -t < employee | sort -nk4
adm  Smith      Dexter     01021975  100000
mis  MacLeod    Janice     01021977  90000
mis  Winslow    Sarah      02151995  58000
mis  Mack       Joe        02252003  85000
act  Smith      Thomas     04102002  56000
act  Smith      Alecia     04121991  65000
mgt  Davidson   Darla      04151992  69500
mgt  MacDonald  George     06151985  70000
mgt  Cooper     John       06151995  66000
mis  Benneth    Joan       08152001  79000
mgt  Neason     Elizabeth  10251998  65500
act  NeSmith    Donald     11301966  99500

관련 정보