프로그래밍/Unix

[유닉스] 중복 삭제 ( uniq )

미냐님 2020. 4. 20. 22:18
728x90

uniq

  • 중복 행을 삭제
  • 형식 : uniq [옵션] [파일]
  • 옵션
    • -c : 각 행 처음에 중복 횟수를 출력
    • -d : 중복된 행 중 한 행만 출력. 원래 유일했던 행은 삭제
    • -u : 중복되지 않는 행만 출력
  • 사용 예
    • uniq test
    • uniq –c test

 

중복 제거

  • 예제 파일 만들기
$ cat test_uniq
aaaaa
abcde
abcde
bbbbb
abcde
bbbbb
bbbbb
abcde
ccc
$
  • uniq 명령을 옵션 없이 실행한 결과
    • 인접한 행의 중복은 제거, 전체 중복은 확인하지 못함
    • 해결 방법은 sort와 결합하는 것
$ uniq test_uniq
aaaaa
abcde
bbbbb
abcde
bbbbb
ccc
$
$ sort test_uniq | uniq
aaaaa
abcde
bbbbb
ccc
$

 

중복 없는 행 보기 : -u

  • -u 옵션을 이용하면 원래 파일에서 중복 없는 행만 출력
$ uniq –u test_uniq
aaaaa
ccc
$

 

중복 행 보기 : -d

  • -d 옵션을 이용하면 원래 파일에서 중복된 행만 출력
$ uniq –d test_uniq
abcde
bbbbb
$

 

중복 횟수 보기 : -c

  • -c 옵션을 이용하면 중복된 행이 몇 번이나 중복되는지 알 수 있음
$ uniq –c test_uniq
1 aaaaa
4 abcde
3 bbbbb
1 ccc
$
728x90