sort

SORT(1)                      General Commands Manual                     SORT(1)



명칭
       sort - 텍스트 파일을 행으로 정렬 한다

서식
       sort [-cmus] [-t separator] [-o output-file] [-T tempdir] [-bdfiMnr]
       [+POS1 [-POS2]] [-k POS1[, POS2]] [file...]
       sort {--help, --version}

해설
       이 메뉴얼 페이지는 GNU 판의 sort 에 대해 쓰여져 있습니다.  sort (은)는, file 가 지정되어 있으면 그
       파일로부터, 파일이 지정되지 않는 경우는 표준 입력으로부터 데이터를 읽어들여, 입력한 각 행에 대해, 정렬나 merge나 비교를
       실시합니다.  파일명 `-'는 표준 입력을 의미합니다.  sort (은)는 디폴트에서는 표준 출력에 결과를 써냅니다.

       sort (은)는, 3 개의 동작 모드를 가지고 있습니다.  (디폴트의) 정렬와 merge와 소트 되고 있는지 어떤지의 체크입니다.
       이하의 옵션으로 동작 모드를 변경합니다.

       -c     파일이 이미 정렬 된 것인지 어떤지 체크합니다.  만약, 정렬 되지 않으면, 에러 메세지를 표시 함과 동시에, 반환값에
              1 을 돌려줍니다.

       -m     복수의 파일을 한묶음 해 정렬 하는 것으로, 그것들을 merge 합니다.  개개의 파일은, 미리 정렬 해 두지 않으면
              안됩니다.  정렬는 언제라도 merge 대신에 움직입니다.  merge의 옵션이 있는 것은, 단순한 merge로
              해결되는 경우에는, 그 쪽이 훨씬 고속이기 때문에입니다.

       입력행은 다음과 같이 해 비교됩니다.  키필드가 지정되어 있을 때에는, sort (은)는, 차이가 발견될까 키필드가 없어질 때까지,
       명령행으로 지정된 순서에, 키필드끼리를, 관련 지을 수 있었던 순서 옵션에 따라 비교합니다.

       만약 글로벌 옵션 Mbdfinr 의 어떤 것인가가 지정되어 키필드가 지정되지 않으면, sort (은)는 글로벌 옵션에 따라, 행
       전체를 비교합니다.

       모든 키가 동일한 경우 (또는 순서를 지시하는 옵션이 전혀 지정되어 있지 않은 경우) , sort (은)는 최종 수단으로서 그
       머신에서의 캐릭터의 조합순서 (machine collating sequence)에 따라, 각 행을 바이트마다 비교합니다.  이 최종
       수단에 대해서는, -r 옵션이 유효합니다.  -s (stable) 옵션은, 이 최종 수단의 비교를 그만두어, 모든 키필드가 동일한
       행끼리의 상대적인 출현순서를 유지합니다.  키필드나 글로벌 옵션을 전혀 지정하지 않을 때에는 -s (은)는 효과를 가지지 않습니다.

       GNU sort 에는, 입력행의 길이의 제한 (행에 포함되는 바이트수의 제한)은 없습니다.  또, 입력 파일의 마지막 1 바이트가
       개행 캐릭터가 아닐 때로는, GNU sort (은)는 입다물어 개행 캐릭터를 보충해 처리를 실시합니다.

       환경 변수 TMPDIR 하지만 설정되어 있는 경우, sort (은)는, 디폴트의 /tmp 대신에, 이것을 작업 파일을 두는
       디렉토리로서 이용합니다.  -T tempdir 옵션도 작업 파일용 디렉토리의 지정에 사용할 수 있습니다.  이 지정은 환경 변수보다
       우선됩니다.

       이하에 나타내는 옵션에 의해, 출력행의 순서부를 제어할 수 있습니다.  이것들은 글로벌로 지정하거나 특정의 키필드에 대해 지정할
       수도 있습니다.  키필드를 지정하지 않을 때로는, 글로벌 옵션은 행 전체의 비교에 적용됩니다.  키필드를 지정했을 때에는, 그것
       고유의 지정을 가지지 않는 키필드에 글로벌 옵션의 동작이 계승됩니다.

       -b     정렬 키를 찾아낼 때, 선두에 있는 공백을 무시합니다.

       -d     `전화번호부순서'로 정렬 합니다. 알파벳, 숫자, 공백 이외의 캐릭터를 무시합니다.

       -f     영소문자는 대문자로 고쳐 정렬 합니다.  예를 들면, `b'는 `B'와 같게 정렬 됩니다.

       -i     ASCII 인 040~0176 (8진, 양단을 포함한다)의 범위에 포함되지 않는다 캐릭터를 무시합니다.

       -M     행선지두에 있는, 공백의 뒤로 달의 영어명의 약칭이 계속된 캐릭터 라인을, 대문자로 변환한 다음, `JAN' <
              `FEB' < ... < `DEC'의 순서로 비교합니다.  달의 명칭이 아닌 캐릭터 라인은, 달의 명칭의 캐릭터
              라인보다 작다고 보여집니다.

       -n     행선지두에 있는 숫자열을, 수치로서 비교합니다.  숫자열은, 공백 (옵션), 마이너스 부호 (옵션), 0 개 이상의
              숫자, 소수점과 0 개 이상의 숫자의 조 (옵션) (으)로부터 구성됩니다.

       -r     비교 결과를 반대로 해, 보다 큰 키치를 가지는 행이 출력으로 먼저 나오도록(듯이) 합니다.

       그 외의 옵션은 이하와 같습니다.

       -o output-file
              결과를 표준 출력 대신에, output-file 에 출력합니다.  output-file 하지만 입력 파일의 1 개인
              경우, sort (은)는 정렬 해 결과를 써내기 전에, 그 입력 파일을 작업 파일에 카피합니다.

       -t separator
              캐릭터 separator (을)를, 각 행으로 정렬 키를 결정할 때의 필드 단락으로 합니다.  디폴트에서는, 공백이
              아닌 캐릭터와 공백 캐릭터의 사이에 필드를 단락짓습니다.  예를 들면,` foo bar'라고 하는 행은,` foo'와
              ` bar'라고 하는 2 개(살)의 필드로 나눌 수 있습니다.  즉, 입력행 ` foo bar'가 주어졌을 경우,
              sort (은)는, 이 행을 필드 ` foo'와 ` bar'에 분할합니다.  필드 단락의 캐릭터는, 그 전의 필드의
              일부라고 보여지지 못하고, 또, 그 후의 필드의 일부라고도 보여지지 않습니다.

       -u     디폴트의 경우, 및 -m 옵션이 지정되었을 경우, 비교해 동일하다고 여겨진 행 중 최초의 1 행만 출력해, 후는
              출력하지 않게 합니다.  -c 옵션이 지정되었을 경우는, 같은 내용의 행이 연속하지 않는 것을 체크합니다.

       +POS1 [-POS2]
              행 중(안)에서, 정렬의 키로서 사용하는 필드를 지정합니다.  필드는, 행 중(안)에서, 위치 POS1 로부터 시작되어
              위치 POS2 까지 (POS2 는 포함하지 않고)의 부분으로부터 됩니다.  필드의 위치와 캐릭터의 위치는 ,함께 0
              으로부터 세기 시작합니다.

       -k POS1[, POS2]
              정렬 키를 지정하는 이제(벌써) 1 개의 서식입니다.  필드의 위치와 캐릭터의 위치는 ,함께 1 으로부터 세기
              시작합니다.

       위치의 지정은, f.c 의 형식을 가집니다.  f 는 필드 번호의 지정이며, c 는, (+pos의 경우) 필드의 선두로부터 센 선두
       캐릭터의 번호, 혹은, (-pos의 경우) 직전의 필드의 말미로부터 센 선두 캐릭터의 번호의 지정입니다.  필드내의 최초의 캐릭터를
       지정하는 경우에는, .c 의 부분을 생략 할 수가 있습니다.  -b 옵션이 주어졌을 경우, 필드 지정의 .c 의 부분은,
       (+pos의 경우) 그 필드내의 최초의 비공백 캐릭터로부터, 혹은, (-pos의 경우) 직전의 필드의 뒤의 최초의 비공백
       캐릭터로부터 센 위치의 지정이 됩니다.

       인수 +pos -pos 에는, 옵션 캐릭터 Mbdfinr (을)를 뒤로 붙일 수도 있습니다.  그 경우에는, 이 필드에는
       글로벌인 순서 짓고 옵션은 적용되지 않습니다.  -b 옵션은, +pos -pos 의 각각 독립에 지정할 수 있습니다만, 글로벌인
       지정이 계승되는 경우에는 양쪽 모두로 지정된 것처럼 일합니다.  -n 또는 -M 옵션이 지정되었을 경우, -b 옵션이 암묵중으로
       지정되게 됩니다만, 이 -b 옵션은, 키 지정의 +pos -pos 의 양쪽 모두에 일합니다.  키는 복수의 필드에 걸쳐도
       상관하지 않습니다.

       상기에 가세해 GNU sort 하지만 인수 1 개만 붙여 기동될 때에는, 이하의 옵션이 인식됩니다.

       --help 표준 출력에 사용법의 메세지를 표시해 정상 종료합니다.

       --version
              표준 출력에 버젼 정보를 표시해 정상 종료합니다.

호환성
       sort 의 역사적인 실장 (BSD 나 System V)이란, 몇개의 옵션, 특히 -b, -f, -n, 의 해석이 다릅니다.
       GNU sort 는 POSIX 의 동작에 따릅니다만, 그 동작은, 보통 (반드시는 아니다) System V 의 동작과 닮아
       있습니다.  POSIX 에 의하면, -n -b (을)를 암묵으로 지정하지 않게 되었습니다.  정합성을 취하기 위해서(때문에),
       -M 도 똑같이 변경되었습니다.  이 결과, 애매한 경우에는, 필드 지정중의 캐릭터의 위치의 의미가 영향을 받는 경우가 있을지도
       모릅니다.  이 문제에 직면하면(자), 대응책은, 명시적으로 -b (을)를 지정하는 것입니다.

버그
       -k 의 유무에 의해 필드 번호의 의미가 다른 것은 혼란의 원입니다.  이 건에 대해서는 모두 POSIX 가 나쁩니다.



FSF                            GNU Text Utilities                        SORT(1)