안녕하세요. 저희 대학에서는 2학년 1학기에 ‘유닉스 기초’라는 과목에서 본 교재를 사용하여 3학점 과목으로 강의를 하고 있습니다. 학기를 마치는 시점에서 건의 드릴 사항이 있습니다.
교재 11장 (유닉스 유틸리티 이용하기)의 381쪽 “2차 정렬하기” 부분에 나오는 sort 명령어의 옵션을 좀 더 표준에 맞게 수정할 필요가 있다고 생각합니다.
예컨대 교재에는 헬스클럽 회원 명부 파일인 test_sort2를 정렬할 때 세 번째 필드인 이름 순으로 정렬하되, 이름이 같으면 두 번째 필드인 성을 기준으로 정렬하는 예를 보여주고 있습니다.
$ cat test_sort2
001 Hong Gil-Dong 80 M
002 Park Ji-Soo 100 M
003 Lee Na-Young 54 F
004 Kim Chan-Sook 60 F
005 Han Ji-Soo 75 M
006 Jung Doo-Ri 49 F
007 Lee Mi-Ra 59 F
$
이러한 요구 사항에 맞게 정렬하기 위해 교재에서 제시하는 명령어는 다음과 같습니다.
$ sort +2 -3 +1 -2 test_sort2
004 Kim Chan-Sook 60 F
006 Jung Doo-Ri 49 F
001 Hong Gil-Dong 80 M
005 Han Ji-Soo 75 M
002 Park Ji-Soo 100 M
007 Lee Mi-Ra 59 F
003 Lee Na-Young 54 F
$
sort 명령어 매뉴얼을 찾아보니 이러한 방식의 정렬 옵션은 ‘obsolescent’라고 하여 더 이상 사용하지 않게 되었다고 하고 “+2 -3” 대신 새로운 표준 옵션인 “-k2,2”를 사용하라고 제시하고 있습니다.
새 표준을 사용한 명령어의 실행 결과는 다음과 같습니다. 앞의 기존 명령어와 동일한 결과입니다.
$ sort -k3,3 -k2,2 test_sort2
004 Kim Chan-Sook 60 F
006 Jung Doo-Ri 49 F
001 Hong Gil-Dong 80 M
005 Han Ji-Soo 75 M
002 Park Ji-Soo 100 M
007 Lee Mi-Ra 59 F
003 Lee Na-Young 54 F
$
제가 학교에서 강의를 할 때도 "+2 -3 +1 -2" 방식의 옵션은 학생들이 이해하기가 어렵고 직관적이지도 않은 것 같습니다.
대신 새 표준옵션인 “-k3,3, -k2,2”를 사용하면 훨씬 이해하기 쉽고 직관적이라 학생들에게 가르치기도 한결 수월한 것 같습니다.
다른 sort 명령이나 연습문제 풀이도 이와 같은 방식으로 제시해 주시면 좋을 것 같습니다. 참고가 되셨으면 합니다.