Published 2020. 11. 9. 20:43
728x90
반응형

uinq 명령어

중복된 내용의 행이 연속으로 있으면 중복없이 하나의 행으로 만들어주는 명령어다.
sort 명령어와 주로 사용한다.

uinq [-c | -d | -u] [-i] [-f num] [-s chars] [input file [output file]]

[옵션]
-c : 각 출력 행 앞에 입력에서 중복된 행의 횟수를 출력
-d : 입력에서 중복된 행만 출력
-f num : 비교할 때 지정된 수 만큼 비교 대상에서 제외
-s chars : 하나의 행에서 지정된 수 만큼 문자를 비교대상에서 제외
-u : 원래 파일에서 연속으로 중복되지 않는 행만 출력
-i : 비교할 때 대소문자 구분 안함

 

uniq 명령어 옵션 사용

다음과 같이 중복된 파일을 하나 만들어보았다.

$ cat uniq1.txt
apple
apple
pineapple
strawberry
strawberry
strawberry
pineapple
strawberry
Apple
Apple
Apple
Apple
Strawberry

옵션없이 uniq 명령어를 사용해보자.

$ cat uniq1.txt | uniq
apple
pineapple
strawberry
pineapple
strawberry
Apple
Strawberry

결과를 확인해보면 연속으로 중복된 값만 사라진 것을 확인할 수 있다.
중복되는 값이 있더라도 연속적으로 중복이 되지 않으면 제거할 수 없다.
그래서 모든 중복된 값을 제거하기 위해서 sort 명령어를 같이 사용하는 이유이기도 하다.

[ -c ]

-c 옵션을 사용하면 중복된 값이 몇개가 있는지 출력해준다.

jaynam:linux_commands/ $ cat uniq1.txt | uniq -c
   2 apple
   1 pineapple
   3 strawberry
   1 pineapple
   1 strawberry
   4 Apple
   1 Strawberry

결과를 확인해보면,
apple 은 2개가 중복이고, Apple은 4개가 중복되어 있다는 것을 알 수 있다.

[ -i ]

-i 옵션은 대소문자 구분없이 중복을 제거해준다. 다음과 같은 파일을 만들어 명령어를 사용해봤다.

$ cat uniq2.txt
apple
apple
Apple
Apple
strawberry
Apple
Apple
Apple
Apple
Strawberry


$ cat uniq2.txt | uniq -c -i
   4 apple
   1 strawberry
   4 Apple
   1 Strawberry

apple 하고 Apple 을 대소문자 구분 없이 중복으로 본다는 것을 알 수 있다.

그럼 이번에는 sort 명령어와 같이 사용해보자.

$ cat uniq3.txt
apple
apple
pineapple
strawberry
apple
apple
pineapple
strawberry
strawberry
apple
apple
pineapple
strawberry

$ cat uniq3.txt | sort
apple
apple
apple
apple
apple
apple
pineapple
pineapple
strawberry
strawberry
strawberry
strawberry

$ cat uniq3.txt | sort | uniq -c
   6 apple
   2 pineapple
   4 strawberry

중복된 값이 뒤죽박죽 섞여있기 때문에 sort 명령어를 통해서 정렬해준 후
uniq 명령어를 사용해서 중복된 값을 제거해주고 몇 개가 중복되어있었는지 확인할 수 있다.

이 외에도 다른 옵션이 있지만 주로 사용하는 옵션만 다뤄보았다.
다른 옵션이 궁금하다면 직접 사용해보는걸로 ㅎㅎ😆

728x90
반응형

'리눅스 > Command' 카테고리의 다른 글

리눅스 grep 명령어  (0) 2021.06.08
리눅스 find 명령어  (0) 2020.12.13
리눅스 sort 명령어  (2) 2020.11.04
리눅스 lsof 명령어  (0) 2019.10.03
리눅스 df 명령어와 du 명령어  (0) 2019.10.03
복사했습니다!