-
카테고리
-
해결 여부
미해결
uniq 명령어중에 -i 옵션 질문드립니다!
19.08.12 20:56 작성 조회수 329
1
안녕하세요 선생님. uniq -i 옵션에 관해 궁금한게 있어서 질문드립니다~
1,2,3,4,5 까지만 출력되면 좋겠는데
6,7,8,9,10 은 왜 다시 소문자로 한번더 중복되게 출력된거죠??? ㅇㅅㅇ? 전 대소문자 무시하고 한가지만 출력되는걸로 이해했거든요
원인을 모르겠습니다 OTL ....원래 저렇게 출력되는게 정상인가요??
답변을 작성해보세요.
3
anstjq1036
질문자2019.08.14
헉 그러네요! sort만 해서 했더니 대소문자 구별해서 나열되네요 , 그래서 uniq -i옵션이 대문자 소문자 두번 출력된거였어요. sort 할때 -f옵션준다음에 uniq -i 하니까 잘 되네요 ㅎㅎ 감사합니다 쌤
그냥 sort로만 출력하면 대소문자를 구별하여 출력된다.
그 상태에서 uniq 옵션을 사용하면, uniq옵션은 연속되어 나열되는 중복된값만을 제외처리하기때문에,
대소문자가 구별되어 출력된 상태에서는 , 같은 이름이어도 연속되어 나열되지 않기때문에 uniq의 기능이
대소문자 따로 분리되어 적용된다.
하지만 sort기능에 -f를 붙이면, 대소문자 구별없이 같은이름들이 서로 연속적으로 나열되게 된다.
(-f는 대소문자 구별을 없애는 옵션이고, sort는 자동으로 알파벳순으로 나열시켜주는 명령어)
이 상태에서 uniq -i옵션을 쓴다면 연속되어 중복된 이름은 전부 제외처리되고 한개만 출력된다.
(uniq 의 -i 옵션도 sort의 -f옵션과 같은, 대소문자 구별을 하지않게하는 옵션이다. 이 옵션을 사용하면
대소문자 구별없이 연속적으로 중복된 텍스트는 제외처리되고 하나만 출력되게 된다.)
2
ProgCoach4U
지식공유자2019.08.14
아래 질문과 같은 내용의 질문이 아닌가 싶네요.
https://www.inflearn.com/questions/11976
이 질문자께서는 sort -f 옵션(ignore case)으로 저와 같은 결과를 얻으셨네요. 참고해보세요~ :D
2
ProgCoach4U
지식공유자2019.08.14
안녕하세요~
저의 시험 환경이랑 수강자분의 시험 환경이 달라서 결과가 다르게 나오는 것 같습니다. 제 환경에서는 아래와 같이 출력되거든요
progcoach4u@ubuntu-vm:lct$ sort uniq_sample | uniq -i | nl
1 john
2 kim
3 lee
4 mike
5 tyler
progcoach4u@ubuntu-vm:lct$
제 추측으로는 sort 명령의 결과가 다른 것이 원인인 것 같습니다. 먼저 제 결과는 아래와 같습니다.
progcoach4u@ubuntu-vm:lct$ sort uniq_sample
john
John
JOHN
kim
kim
Kim
Kim
KIM
lee
lee
lee
Lee
mike
mike
Mike
Mike
Mike
Mike
MIKE
tyler
tyler
Tyler
progcoach4u@ubuntu-vm:lct$
제 환경에서는 sort 명령어가 대소문자 구분없이 정렬했기 때문에 뒤이어 나오는 uniq -i에서 대소문자 무시하고 하나만 출력하도록 하여 총 5개의 아웃풋이 나온 것입니다. 그런데 질문의 실행 결과를 보면 대문자로 먼저 정렬되고, 그 다음에 소문자로 정렬 되네요. sort 명령어가 A-Za-z 순으로 정렬을 한 것 아닌가 싶네요. sort 명령만 수행했을 때의 결과를 비교해보시면 정확한 원인을 분석하실 수 있지 않을까 싶어요. sort 명령만 수행했을 때의 결과를 댓글로 올려주시면 다른 수강자분들도 같이 보실 수 있을 것 같습니다~ :)
0
답변 4