/
중복된 내용을 제거하는 linux uniq 명령어 사용법

중복된 내용을 제거하는 linux uniq 명령어 사용법


uniq 는 입력 내용에서 중복된 항목을 제거하는 커맨드 라인 유틸리티입니다.

보통 sort 명령어로 정렬을 한 결과를 파이프로 uniq 에 전달해서 중복 내용을 제거합니다.

 예제 파일 펼치기 ....
input.txt
bat
abc
apple
Abc
BALL
ABc
bat


기본 사용법

예제 파일을 sort 로 정렬한 결과한 후에 uniq 에 전달하면 중복되는 단어인 bat 는 하나만 표시합니다.

$ sort input.txt | uniq

abc
Abc
ABc
apple
BALL
bat


유일한 라인만 표시

-u 옵션을 사용하면 중복되지 않는 라인만 표시합니다. 즉 중복된 line 인 bat 는 표시하지 않습니다. 

$ sort input.txt | uniq -u

abc
Abc
ABc
apple
BALL


중복되는 라인만 표시

-d 옵션을 사용하면 -u 와는 반대로 중복되는 라인만 표시하며 아래 예제는 중복되는 line인 bat 만 표시합니다.

$ sort input.txt | uniq -d

bat


중복 횟수 세기

-c 옵션을 사용하면 각 라인별 중복 횟수를 계산해서 표시합니다. bat 만 중복되므로 2 가 표시되고 나머지는 다 1이 표시됩니다.

$ sort input.txt | uniq -c

	  1 abc
      1 Abc
      1 ABc
      1 apple
      1 BALL
      2 bat


-c-d-u 옵션과도 같이 사용할 수 있습니다. 아래는 중복 line 의 횟수만 표시합니다.

$ sort input.txt | uniq -c -d

      2 bat


uniq -c 의 결과는  출현 빈도에 따라 오름차순으로 표시됩니다. 만약 내림차순으로 변경하려면 uniq 의 결과를 다시 sort 로 받아서 정렬하면 됩니다.

$ sort input.txt | uniq -c | sort -nr

	  2 bat
      1 BALL
      1 apple
      1 ABc
      1 Abc
      1 abc

대소문자 무시

uniq 는 기본적으로 대소문자를 구분하므로 'abc' 와 'AbC' 를 다르게 인식합니다. 대소문자를 무시하는 옵션인 -i, --ignore-case 를 사용하면 'abc' 와 'ABC', 'aBc' 를 모두 같게 처리합니다.

$ sort input.txt | uniq -i

abc
apple
BALL
bat


같이 보기

Related content

입력 내용을 정렬하는 linux sort 명령어 사용법
입력 내용을 정렬하는 linux sort 명령어 사용법
More like this
linux cut 명령어 사용법
linux cut 명령어 사용법
More like this
리눅스 블록 디바이스의 uuid 를 출력하는 blkid 명령어 사용법
리눅스 블록 디바이스의 uuid 를 출력하는 blkid 명령어 사용법
More like this
파일이나 폴더를 묶는 linux tar 명령어 사용법
파일이나 폴더를 묶는 linux tar 명령어 사용법
More like this
tail 과 bat 명령을 pipe로 연결해서 더 편리하게 로그 파일 보기
tail 과 bat 명령을 pipe로 연결해서 더 편리하게 로그 파일 보기
More like this
파일을 여러 조각으로 분리해 주는 linux split 명령어 사용법
파일을 여러 조각으로 분리해 주는 linux split 명령어 사용법
More like this