다음과 같은 파일이 있습니다.
파일이름은 test.txt입니다.
1 2 3 4 5 6 7 |
1 홍길동 2 전우치 4 변학도 3 이몽룡 5 성춘향 |
이렇게 하면 2번째 커럼으로 소팅이 되야 합니다.
1 2 3 |
sort -k 2 test.txt |
그런데 이렇게 해도 소팅이 안되고 순서가 정렬이 안되는 경우가 있습니다.
LC_COLLATE나 LC_ALL 환경변수에 한글을 지정해 줘야 합니다.
1 2 3 4 5 |
$ export LC_COLLATE="ko_KR.utf8" # 또는 $ export LC_ALL="ko_KR.utf8" |
위의 명령으로 리눅스 환경의 언어셋을 변경하면 소팅이 되는데 에러 메세지가 나올 수 있습니다.
1 2 3 |
-bash: warning: setlocale: LC_COLLATE: cannot change locale (ko_KR.utf8): No such file or directory |
이 에러가 나오는 것은 언어패이 설치가 되어 있지 않기 때문입니다. 그럴 때는 이렇게 해줍니다.
1 2 3 4 5 6 7 |
# CentOs나 Redhat 리눅스 계열 $ sudo apt install language-pack-ko # Ubuntu 우분투 계열 $ sudo yum install glibc-langpack-ko |
그 뒤에 다시 sort 코맨드로 정렬을 해보면 잘 됩니다.
1 2 3 4 5 6 7 8 9 |
$ sort -k 2 1.txt 4 변학도 5 성춘향 3 이몽룡 2 전우치 1 홍길동 |