인접한 곳에 중복되는 문장 탐지 및 제거에 이용된다. 중복되는 문장이어도 인접하지 않으면 탐지를 안한다. 보통 이런건 순서가 보장될 필요가 없으면, sort -u
명령으로 해결하면 된다.
uniq [OPTION] [INPUT[OUTPUT]]
OPTION
: uniq
서 활용할 설정
INPUT
: uniq
가 적용되는 입력 파일. 없으면 사용자 입력값을 가지고 실행
OUTPUT
: uniq
가 적용된 파일을 저장할 위치. 없으면 그냥 출력
밑은 예시 파일
sycho@DESKTOP-4RPUOID:~$ cat dups.txt
I love linux and programming
I love linux and programming
I love python
I love python
I love python
We love Java
We love Java
We love Java
We love Java
We love Java
Any other opinions?
uniq
적용 결과. 중복 문장이 제거되고 출력되었다.sycho@DESKTOP-4RPUOID:~$ uniq dups.txt
I love linux and programming
I love python
We love Java
Any other opinions?
-c
)sycho@DESKTOP-4RPUOID:~$ uniq -c dups.txt
2 I love linux and programming
1
3 I love python
1
5 We love Java
1
1 Any other opinions?
-d
)sycho@DESKTOP-4RPUOID:~$ uniq -cd dups.txt
2 I love linux and programming
3 I love python
5 We love Java
-D
)-c
랑 같이 사용 불가.sycho@DESKTOP-4RPUOID:~$ uniq -D dups.txt
I love linux and programming
I love linux and programming
I love python
I love python
I love python
We love Java
We love Java
We love Java
We love Java
We love Java
-u
)sycho@DESKTOP-4RPUOID:~$ uniq -u dups.txt
Any other opinions?
-f
)문장들의 앞부분마다 번호가 매겨져 있는 경우 유용한 option이다.
앞의 N개의 field를 무시하고 중복 여부를 검사하도록 한다.
sycho@DESKTOP-4RPUOID:~$ cat dups2.txt
1. I love python
2. I love python
3. I love python
4. I love linux
5. I love linux
sycho@DESKTOP-4RPUOID:~$ uniq -f 2 dups2.txt
1. I love python
4. I love linux
-s
)-f
랑 유사하나, 단위가 field 대신 문자다.sycho@DESKTOP-4RPUOID:~$ cat dups2.txt
1. I love python
2. I love python
3. I love python
4. I love linux
5. I love linux
sycho@DESKTOP-4RPUOID:~$ uniq -s 3 dups2.txt
1. I love python
4. I love linux
-w
)-D
로 공백 문장들을 전부 처리한 다음, 첫 글자가 같은 문장들끼리를 묶어 놓았다. 이러면 I
랑 W
에 대해서 묶이게 된다.sycho@DESKTOP-4RPUOID:~$ uniq -D dups.txt | uniq -w 1
I love linux and programming
We love Java
-i
)sycho@DESKTOP-4RPUOID:~$ cat dups2.txt
I love python
I LOVE python
I LOVE python
I loVe linux
I lOve linux
sycho@DESKTOP-4RPUOID:~$ uniq dups2.txt
I love python
I LOVE python
I loVe linux
I lOve linux
sycho@DESKTOP-4RPUOID:~$ uniq -i dups2.txt
I love python
I loVe linux
\n
대신 \0
사용 (-z
)기본은 줄 구분 기준이 줄바꿈 문자 (\n
)이다.
이 줄 구분 기준을 \0
으로 바꾸고 싶으면 -z
를 사용한다.
보통 uniq
를 스크립트 파일에서 활용할 때 쓰인다.