• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

질문 있습니다!

20.09.27 11:18 작성 조회수 155

1

안녕하세요. 좋은 강의 감사드립니다. 

1. 예시로 보여주신 이름들은 모두 파일인지, 아니면 텍스트 파일안에 있는 텍스트들인지 궁금합니다. 만약 파일들이라면 uniq_sample은 폴더명인가요??

제 특정 폴더에 들어있는 파일을 정렬 및 uniq하려고 특정폴더로 cd해서 sort uniq명령어를 적용시키니까 그런 폴더가 없다고 나옵니다. 

답변 4

·

답변을 작성해보세요.

2

Jang Daehyuk님의 프로필

Jang Daehyuk

2021.01.09

실습 관련 질문드립니다.

$ 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

now님의 프로필

now

질문자

2020.09.29

답변 감사합니다!

0

안녕하세요. 질문자님.

uniq_sample은 파일 이름입니다. uniq_sample 파일에 john, mike 등의 이름이 적혀있는 것 입니다. 실행하셨던 명령문을 다시 한번 검토해보세요.