Linux command - uniq

sycho·2024년 1월 2일
0

Linux Commands

목록 보기
24/30

uniq

basics

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?

OPTIONS

각 중복 문장의 등장 횟수도 출력 (-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?

처음 n개의 field 무시하고 중복 여부 검사. (-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

처음 n개의 문자를 무시하고 중복 여부 검사. (-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

처음 n개의 문자만을 가지고 중복 여부 검사. (-w)

  • 밑 예시는 먼저 -D로 공백 문장들을 전부 처리한 다음, 첫 글자가 같은 문장들끼리를 묶어 놓았다. 이러면 IW에 대해서 묶이게 된다.
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

줄 구분 기준 delimiter을 \n 대신 \0 사용 (-z)

  • 기본은 줄 구분 기준이 줄바꿈 문자 (\n)이다.

  • 이 줄 구분 기준을 \0으로 바꾸고 싶으면 -z를 사용한다.

  • 보통 uniq를 스크립트 파일에서 활용할 때 쓰인다.

profile
CS 학부생, 핵심 관심 분야 : Embed/System/Architecture/SWE

0개의 댓글