Linux

[리눅스] uniq 명령어 완벽 가이드 사용법(중복 라인 제거)

인생아 2024. 10. 14. 22:59
반응형

uniq 명령어는 텍스트 파일이나 입력된 데이터에서 중복된 라인을 제거하는 데 사용됩니다. 이 명령어는 파일 내에서 연속으로 나타나는 중복된 라인만 처리하기 때문에, 중복된 라인을 효과적으로 처리하려면 먼저 sort 명령어를 사용하여 데이터를 정렬한 후 uniq 명령어를 사용하는 것이 일반적입니다.

uniq 명령어의 기본 사용법

uniq [옵션] [파일명]

파일명을 지정하지 않으면 표준 입력에서 데이터를 받아 처리할 수 있습니다. uniq 명령어는 중복된 라인을 제거하는 것 외에도 중복된 라인의 개수를 출력하거나, 중복되지 않은 라인만 출력하는 등의 다양한 기능을 제공합니다.

uniq 명령어 주요 옵션

  1. -c: 각 라인의 중복 개수를 출력합니다.
  2. -d: 중복된 라인만 출력합니다.
  3. -u: 중복되지 않은 라인만 출력합니다.
  4. -i: 대소문자를 무시하고 중복을 처리합니다.
  5. -f N: 첫 번째부터 N개의 필드를 무시하고 중복을 처리합니다.
  6. -s N: 각 라인의 처음 N개의 문자를 무시하고 중복을 처리합니다.

uniq 명령어 사용 예시

기본 중복 제거

uniq 명령어는 기본적으로 연속된 중복 라인을 제거합니다. 예를 들어 sample.txt 파일에서 중복된 라인을 제거하는 명령어는 다음과 같습니다.

user@linux:~/documents$ uniq sample.txt

sample.txt 파일의 내용이 다음과 같을 때:

apple
banana
banana
cherry
apple

명령어 실행 결과:

apple
banana
cherry
apple

중복된 banana가 한 번만 남고, 다른 중복되지 않은 라인은 그대로 유지됩니다.

중복된 라인 카운트 출력

-c 옵션을 사용하면 각 라인이 몇 번 중복되었는지 카운트를 출력할 수 있습니다.

user@linux:~/documents$ uniq -c sample.txt

명령어 실행 결과:

  1 apple
  2 banana
  1 cherry
  1 apple

여기서 각 라인의 앞에 중복 횟수가 표시됩니다.

중복된 라인만 출력

-d 옵션을 사용하면 중복된 라인만 출력할 수 있습니다.

user@linux:~/documents$ uniq -d sample.txt

명령어 실행 결과:

banana

banana가 두 번 등장했기 때문에 중복된 라인으로 출력됩니다.

중복되지 않은 라인만 출력

-u 옵션을 사용하면 중복되지 않은 라인만 출력할 수 있습니다.

user@linux:~/documents$ uniq -u sample.txt

명령어 실행 결과:

apple
cherry
apple

중복되지 않은 applecherry가 출력됩니다.

대소문자 무시하고 중복 처리

-i 옵션을 사용하면 대소문자를 무시하고 중복 라인을 처리할 수 있습니다.

user@linux:~/documents$ uniq -i sample2.txt

sample2.txt 파일의 내용이 다음과 같을 때:

Apple
apple
Banana
banana

명령어 실행 결과:

Apple
Banana

대소문자 차이를 무시했기 때문에 Appleapple은 중복으로 처리되고, Banana도 동일하게 처리됩니다.

필드나 문자 무시하고 중복 처리

예를 들어, 각 라인의 첫 번째 필드N개의 문자를 무시하고 중복을 제거할 수 있습니다. -f-s 옵션을 조합해서 사용하면 됩니다. 예를 들어 -f 1 옵션을 사용하면 첫 번째 필드를 무시하고 처리할 수 있습니다.

user@linux:~/documents$ uniq -f 1 sample3.txt

uniq 명령어의 활용도

uniq 명령어는 로그 파일 분석이나 데이터 정리 작업에서 자주 사용됩니다. 예를 들어, 로그 파일에서 특정 이벤트가 몇 번 발생했는지 확인할 때 sortuniq -c를 조합하여 쉽게 분석할 수 있습니다. 또한, 중복된 데이터 처리텍스트 데이터 분석에도 매우 유용합니다.

참고사이트

반응형