본문 바로가기

운영체제/리눅스

리눅스 uniq 명령어, 중복된 줄을 제거하고 데이터 정리하기

리눅스 uniq 명령어, 중복된 줄을 제거하고 데이터 정리하기

리눅스에서 데이터 처리는 텍스트 파일을 기반으로 하는 경우가 많습니다. 특히 대량의 데이터를 다룰 때는 중복된 줄을 제거하는 것이 중요한데, 이때 유용하게 쓰이는 명령어가 uniq입니다. 이 가이드에서는 uniq 명령어의 기본 사용법부터 실무에서 활용할 수 있는 다양한 옵션까지 자세히 다뤄보겠습니다.

 

 

 

uniq 명령어란?

uniq 명령어는 리눅스에서 텍스트 파일의 중복된 줄을 제거하는 데 사용됩니다. 단순히 동일한 줄을 제거하는 것이 아니라, 특정 패턴이나 조건에 따라 중복을 처리할 수 있어 데이터 정리 및 분석 작업에 필수적입니다. 다만, uniq 명령어는 연속된 줄의 중복만 제거하므로, 일반적으로 sort 명령어와 함께 사용됩니다.

 

 

기본 사용법

uniq 명령어의 가장 기본적인 사용법은 다음과 같습니다:

uniq [옵션] [입력 파일] [출력 파일]

예를 들어, input.txt 파일에서 중복된 줄을 제거하고 결과를 output.txt에 저장하려면, 다음 명령어를 사용할 수 있습니다:

uniq input.txt output.txt

이 명령어는 input.txt에서 중복된 줄을 제거한 후, 그 결과를 output.txt에 저장합니다.

 

 

고급 옵션 활용하기

uniq 명령어는 다양한 옵션을 제공하여 중복 처리 방식을 세밀하게 조정할 수 있습니다. 몇 가지 주요 옵션은 다음과 같습니다:

  • -c: 각 줄의 중복 횟수를 출력합니다.
  • -d: 중복된 줄만 출력합니다.
  • -u: 중복되지 않은 줄만 출력합니다.
  • -i: 대소문자를 구분하지 않고 중복을 검사합니다.

예를 들어, -c 옵션을 사용하여 각 줄이 몇 번 중복되었는지 확인하려면 다음과 같이 입력합니다:

uniq -c input.txt

이 명령어는 각 줄의 앞에 중복된 횟수를 출력합니다.

 

 

 

 

실용적인 예제

실제로 uniq 명령어를 어떻게 활용할 수 있는지 몇 가지 예를 들어 보겠습니다.

    • 파일에서 중복된 이메일 주소를 제거하고 고유한 주소 목록만 출력하기:
sort emails.txt | uniq
    • 로그 파일에서 같은 오류 메시지가 몇 번 발생했는지 확인하기:
sort error.log | uniq -c

 

 

sort 명령어와 함께 사용하기

앞서 언급했듯이, uniq 명령어는 연속된 중복 줄만 제거합니다. 따라서 데이터를 정렬하지 않은 상태에서 uniq를 사용하면 예상과 다른 결과가 나올 수 있습니다. 이를 방지하기 위해 sort 명령어와 함께 사용하는 것이 일반적입니다.

예를 들어, 정렬되지 않은 파일에서 고유한 줄을 출력하려면 다음과 같이 명령어를 조합합니다:

sort input.txt | uniq

 

 

결론

리눅스의 uniq 명령어는 텍스트 데이터에서 중복을 제거하여 데이터를 정리하는 데 매우 유용한 도구입니다. 기본적인 사용법부터 고급 옵션까지 다양한 기능을 제공하여 데이터 분석과 처리 작업을 효율적으로 수행할 수 있습니다. 특히 sort 명령어와 함께 사용하면 더욱 강력한 데이터 정리 도구로 활용할 수 있습니다.