> 텍스트 처리 및 검색 > uniq

uniq: 중복 라인 제거 및 개수 세기

`uniq` 명령어는 텍스트 파일이나 표준 입력에서 연속적으로 반복되는 라인을 찾아 제거하거나, 특정 옵션과 함께 사용하여 중복 라인의 개수를 세는 데 사용됩니다. 특히 `-c` 옵션은 각 라인이 몇 번 반복되었는지 그 횟수를 라인 앞에 붙여 출력하여 데이터 분석에 유용합니다.

개요

`uniq`는 주로 `sort` 명령어와 함께 파이프(|)로 연결하여 사용되며, 정렬된 데이터에서 중복된 라인을 효율적으로 처리합니다. `-c` 옵션은 중복 라인의 개수를 쉽게 파악할 수 있게 해줍니다.

주요 특징

  • 연속된 중복 라인 처리
  • 중복 라인 개수 세기 (-c)
  • 대소문자 무시 옵션 (-i)
  • 특정 필드 또는 문자 무시 비교

주요 옵션

기능

비교 방식

생성된 명령어:

명령어를 조합해 보세요.

설명:

`uniq` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

파일 내 단어 빈도수 계산

sort words.txt | uniq -c

`words.txt` 파일의 각 단어(라인)가 몇 번 나타나는지 세어 출력합니다. `uniq`는 연속된 중복만 처리하므로, `sort`를 먼저 사용하여 모든 중복을 인접하게 만듭니다.

로그 파일에서 가장 많이 나타난 라인 찾기

cat log.txt | sort | uniq -c | sort -nr

로그 파일에서 중복 라인의 개수를 세고, 그 결과를 개수(숫자)를 기준으로 내림차순 정렬하여 가장 많이 나타난 라인을 상위부터 보여줍니다.

대소문자 무시하고 중복 라인 개수 세기

echo -e "Apple\napple\nBanana\napple" | sort | uniq -ci

표준 입력에서 'Apple'과 'apple'을 같은 것으로 간주하여 중복 개수를 세어 출력합니다.

특정 필드 무시하고 중복 개수 세기

sort -k2 data.txt | uniq -f 1 -c

파일의 첫 번째 필드를 무시하고 두 번째 필드부터 비교하여 중복 라인의 개수를 세어 출력합니다. (예: `data.txt` 내용이 `ID1 apple`, `ID2 apple` 일 경우 'apple'이 2개로 계산)

팁 & 주의사항

`uniq` 명령어는 기본적으로 '연속적으로' 중복되는 라인만 처리합니다. 따라서 파일 전체에서 중복을 제거하거나 개수를 세려면, 먼저 `sort` 명령어를 사용하여 라인을 정렬해야 합니다.

활용 팁

  • sort와 함께 사용: `uniq`는 연속된 중복만 처리하므로, 파일 전체의 중복을 처리하려면 `sort`로 먼저 정렬해야 합니다. 예: `sort file.txt | uniq -c`
  • 가장 많이 나타난 항목 찾기: `uniq -c` 결과에 `sort -nr`을 파이프하여 가장 많이 나타난 항목을 내림차순으로 정렬할 수 있습니다. 예: `sort file.txt | uniq -c | sort -nr`
  • 성능 고려: 매우 큰 파일의 경우, `sort`와 `uniq`의 메모리 사용량을 고려해야 합니다. 필요한 경우 `sort`의 `-T` 옵션으로 임시 디렉토리를 지정할 수 있습니다.

관련 명령어

기능적으로 유사하거나 함께 자주쓰이는 명령어들입니다.


동일 카테고리 명령어