리눅스에서 한글 파일 정렬이 안될 때 – Sorting Korean text file on Linux

다음과 같은 파일이 있습니다.

파일이름은 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       홍길동
Author: 떰학

답글 남기기