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