작성
·
227
1
안녕하세요. 좋은 강의 감사드립니다.
1. 예시로 보여주신 이름들은 모두 파일인지, 아니면 텍스트 파일안에 있는 텍스트들인지 궁금합니다. 만약 파일들이라면 uniq_sample은 폴더명인가요??
제 특정 폴더에 들어있는 파일을 정렬 및 uniq하려고 특정폴더로 cd해서 sort uniq명령어를 적용시키니까 그런 폴더가 없다고 나옵니다.
답변 4
2
실습 관련 질문드립니다.
$ sort uniq_sample | nl
결과가 강사님이랑 조금 다르게 나옵니다.
1 JOHN
2 John
.
,
.
13 john
이런 식으로 john 이라는 글자가 떨어져서 나오게 되는데 이걸 글자단위로 보면 첫글자를 대문자를 기준으로 먼저 sorting이 되는 거 같습니다. 그래서 저의 경우에는
$ sort uniq_sample -f | nl
처럼 -f 옵션을 넣어줘야 john이라는 단어가 다 연속되게 sorting이 됩니다.
1 JOHN
2 John
3 john
.
.
.
이런식으로 말이죠. 이건 우분투의 설정의 차이일까요? 현재 저는 우분투 18.04 한글버전으로 os 를 사용 중에 있습니다.
2번째로 궁금한건 강사님처럼 소문자 존이 더 먼저 sorting이 되게 하려면 어떻게 해야하나요?
1 john
2 John
3 JOHN
처럼 나오게 말이죠. -r 을 하면 tyler 가 첫 행으로 sorting이 되서요.
1
장대혁님 안녕하세요.
답변 드립니다.
정렬되는 오더는 로케일 중 LC_COLLATE라는 값에 의해 좌우됩니다. 쉘에서 `echo $LC_COLLATE`라고 해보시면 현재 설정값이 보이실 것입니다. 우분투 18.04 한글로 설치를 하셨으면 `ko_KR.UTF-8`로 설정되어 있을 것으로 예상이 되는데요, ko_KR.UTF-8의 경우 `012ABCabc`와 같은 순서로 오더링 됩니다. LC_COLLATE 값을 en_US.UTF-8로 설정하면 `012aAbBcC`의 순서로 오더링 됩니다. 이 오더는 로케일이 무엇이냐에 따라 결정되는 것이기 때문에 변경하실 수는 없습니다. 만약 특정 정령 명령만 en_US.UTF-8로 설정하시려면 다음과 같이 실행하시면 됩니다.
LC_COLLATE="en_US.UTF-8" sort uniq_sample
0
0
안녕하세요. 질문자님.
uniq_sample은 파일 이름입니다. uniq_sample 파일에 john, mike 등의 이름이 적혀있는 것 입니다. 실행하셨던 명령문을 다시 한번 검토해보세요.