일단, 리눅스 정렬 명령 (sort) 에 관한 기본적인 (나의) 글들:
이 글에선, 여러 정렬 기준에 대해 정렬하는 법에 대해 설명하겠다.
예를 들어, 다음과 같은 입력 파일 (people.txt
) 가 있다고 하자:
Rammus 420 255 50 335
Lucian 390 230 46 330
Kennen 403 200 47 335
Darius 426 200 50 340
Anivia 350 257 48 325
Ezreal 350 235 47 325
Aatrox 395 0 55 345
Graves 410 255 51 330
Draven 420 240 47 330
풀고자 하는 문제는:- 두 번째 필드의 값 (
420
,390
,403
, ...) 으로 정렬하고, 만약 그 값이 같다면 세 번째 필드의 값 (255
,230
,200
, ...) 으로 정렬.
sort -k2,2 -k3,3 people.txt
이다. 결과는:
Ezreal 350 235 47 325
Anivia 350 257 48 325
Lucian 390 230 46 330
Aatrox 395 0 55 345
Kennen 403 200 47 335
Graves 410 255 51 330
Draven 420 240 47 330
Rammus 420 255 50 335
Darius 426 200 50 340
Ezreal
과 Anivia
를 보면, 두 번째 필드의 값 (350
, 350
) 이 같으니까 세 번째 필드의 값 (235
, 257
) 으로 정렬된 것을 알 수있다. Draven
과 Rammus
도 마찬가지.
그럼, 이전 글에서 소개한 "sort -k2,3 people.txt
와의 차이는 무엇인가?"하는 분이 있을 것이다.
길게 설명하면 골치아프니까, 간단하게 얘기하자면 (정확한 설명은 아니지만):
-k2,3
는 연속적인 필드를 정렬 기준으로 함.- 그러니까, "두 번째 필드와 네 번째 필드로 정렬"같은 건 안 됨.
- 그 땐,
-k2,2 -k4,4
로 해야 함.
리눅스 정렬 명령에 관한: | 이전 글 | 다음 글 |