uniq를 사용하여 Linux 텍스트 파일에서 중복 데이터를 찾는 방법

uniq를 사용하여 Linux 텍스트 파일에서 중복 데이터를 찾는 방법

반복되는 행과 중복된 단어가 있는 텍스트 파일을 본 적이 있습니까? 명령 출력으로 정기적으로 작업하고 고유한 문자열에 대해 출력을 필터링하고 싶을 수 있습니다. Linux에서 텍스트 파일 및 중복 데이터 제거와 관련하여 uniq 명령이 가장 좋습니다.





이 기사에서는 uniq 명령에 대해 자세히 설명하고 명령을 사용하여 텍스트 파일에서 중복 행을 제거하는 방법에 대한 자세한 가이드를 설명합니다.





uniq 명령이란 무엇입니까?

Linux의 uniq 명령은 텍스트 파일에 동일한 행을 표시하는 데 사용됩니다. 이 명령은 텍스트 파일에서 중복된 단어나 문자열을 제거하려는 경우에 유용할 수 있습니다. uniq 명령은 중복 복사본을 찾기 위해 인접한 줄과 일치하므로 정렬된 텍스트 파일에서만 작동합니다.





다행히 파이프를 사용할 수 있습니다. 종류 uniq와 함께 명령을 사용하여 명령과 호환되는 방식으로 텍스트 파일을 구성합니다. 반복되는 행을 표시하는 것 외에도 uniq 명령은 텍스트 파일에서 중복 행의 발생을 계산할 수도 있습니다.

uniq 명령을 사용하는 방법

uniq와 함께 사용할 수 있는 다양한 옵션과 플래그가 있습니다. 그 중 일부는 기본적이고 반복되는 줄 인쇄와 같은 간단한 작업을 수행하는 반면, 다른 일부는 Linux에서 텍스트 파일을 자주 사용하는 고급 사용자를 위한 것입니다.



기본 구문

uniq 명령의 기본 구문은 다음과 같습니다.

uniq option input output

...어디 옵션 명령의 특정 메서드를 호출하는 데 사용되는 플래그입니다. 입력 처리를 위한 텍스트 파일이며, 산출 출력을 저장할 파일의 경로입니다.





NS 산출 인수는 선택 사항이며 건너뛸 수 있습니다. 사용자가 입력 파일을 지정하지 않으면 uniq는 표준 출력에서 ​​데이터를 입력으로 가져옵니다. 이를 통해 사용자는 uniq를 다음과 같이 파이프할 수 있습니다. 다른 리눅스 명령어 .

예제 텍스트 파일

우리는 텍스트 파일을 사용할 것입니다 중복.txt 명령에 대한 입력으로.





127.0.0.1 TCP
127.0.0.1 UDP
Do catch this
DO CATCH THIS
Don't match this
Don't catch this
This is a text file.
This is a text file.
THIS IS A TEXT FILE.
Unique lines are really rare.

이 텍스트 파일은 이미 다음을 사용하여 정렬했습니다. 종류 명령. 다른 텍스트 파일로 작업하는 경우 다음 명령을 사용하여 정렬할 수 있습니다.

sort filename.txt > sorted.txt

중복 라인 제거

uniq의 가장 기본적인 용도는 입력에서 반복되는 문자열을 제거하고 고유한 출력을 인쇄하는 것입니다.

uniq duplicate.txt

산출:

시스템은 두 번째 행을 표시하지 않습니다. 이것은 텍스트 파일입니다 . 또한 앞서 언급한 명령은 파일의 고유한 줄만 인쇄하며 원본 텍스트 파일의 내용에는 영향을 주지 않습니다.

반복되는 줄 카운트

텍스트 파일에서 반복되는 줄 수를 출력하려면 다음을 사용하십시오. -씨 기본 명령으로 플래그를 지정합니다.

uniq -c duplicate.txt

산출:

시스템은 텍스트 파일에 있는 각 줄의 개수를 표시합니다. 라인임을 알 수 있습니다 이것은 텍스트 파일입니다 파일에서 두 번 발생합니다. 기본적으로 uniq 명령은 대소문자를 구분합니다.

텍스트 파일에서 중복 행만 인쇄하려면 다음을 사용하십시오. -NS 깃발. NS -NS 의 약자 복제하다 .

uniq -D duplicate.txt

시스템은 다음과 같이 출력을 표시합니다.

This is a text file.
This is a text file.

중복을 확인하는 동안 필드 건너뛰기

문자열을 일치시키는 동안 특정 수의 필드를 건너뛰려면 다음을 사용할 수 있습니다. -NS 명령으로 플래그를 지정합니다. NS -NS 의 약자 .

다음 텍스트 파일을 고려하십시오. 필드.txt .

192.168.0.1 TCP
127.0.0.1 TCP
354.231.1.1 TCP
Linux FS
Windows FS
macOS FS

첫 번째 필드를 건너뛰려면:

uniq -f 1 fields.txt

산출:

192.168.0.1 TCP
Linux FS

앞서 언급한 명령은 첫 번째 필드(IP 주소 및 OS 이름)를 건너뛰고 두 번째 단어(TCP 및 FS)와 일치합니다. 그런 다음 각 일치 항목의 첫 번째 항목을 출력으로 표시했습니다.

비교할 때 문자 무시

필드 건너뛰기와 마찬가지로 문자도 건너뛸 수 있습니다. NS -NS 플래그를 사용하면 중복 행을 일치시키는 동안 건너뛸 문자 수를 지정할 수 있습니다. 이 기능은 작업 중인 데이터가 다음과 같은 목록 형식일 때 도움이 됩니다.

Word에서 페이지를 구성하는 방법
1. First
2. Second
3. Second
4. Second
5. Third
6. Third
7. Fourth
8. Fifth

파일의 처음 두 문자(목록 번호 매기기)를 무시하려면 목록.txt :

uniq -s 2 list.txt

산출:

위의 출력에서 ​​처음 두 문자는 무시되고 나머지는 고유한 줄에 대해 일치되었습니다.

중복에 대해 처음 N개의 문자 확인

NS -에 플래그를 사용하면 고정된 수의 문자만 중복되었는지 확인할 수 있습니다. 예를 들어:

uniq -w 2 duplicate.txt

앞서 언급한 명령은 처음 두 문자와만 일치하며 고유한 행이 있는 경우 인쇄합니다.

산출:

대소문자 구분 제거

위에서 언급했듯이 uniq는 파일의 줄을 일치시키는 동안 대소문자를 구분합니다. 대소문자를 무시하려면 다음을 사용하십시오. -NS 명령과 함께 옵션.

uniq -i duplicate.txt

다음 출력이 표시됩니다.

위의 출력에서 ​​uniq는 행을 표시하지 않았습니다. 이것을 잡아라 그리고 이것은 텍스트 파일입니다 .

파일로 출력 보내기

uniq 명령의 출력을 파일로 보내려면 다음을 사용할 수 있습니다. 출력 리디렉션 ( > ) 문자는 다음과 같습니다.

uniq -i duplicate.txt > otherfile.txt

출력을 텍스트 파일로 보내는 동안 시스템은 명령의 출력을 표시하지 않습니다. 다음을 사용하여 새 파일의 내용을 확인할 수 있습니다. 고양이 명령.

cat otherfile.txt

다른 방법을 사용할 수도 있습니다. Linux에서 명령줄 출력을 파일로 보내기 .

uniq로 중복 데이터 분석하기

대부분의 경우 Linux 서버를 관리하는 동안 터미널에서 작업하거나 텍스트 파일을 편집하게 됩니다. 따라서 텍스트 파일에서 줄의 중복 복사본을 제거하는 방법을 아는 것은 Linux 기술에 큰 자산이 될 수 있습니다.

파일에서 텍스트를 필터링하고 정렬하는 방법을 모르는 경우 텍스트 파일로 작업하는 것이 어려울 수 있습니다. 작업을 더 쉽게 하기 위해 Linux에는 다음과 같은 여러 텍스트 편집 명령이 있습니다. 세드 그리고 어이쿠 텍스트 파일 및 명령줄 출력으로 효율적으로 작업할 수 있습니다.

공유하다 공유하다 트위터 이메일 이 10가지 Sed 예제를 통해 Linux 고급 사용자가 될 수 있습니다.

Linux 파워 유저가 되고 싶으십니까? sed를 이해하는 것이 도움이 될 것입니다. 이 10가지 sed 예제에서 배우십시오.

다음 읽기
관련 항목
  • 리눅스
  • 리눅스
저자 소개 디페쉬 샤르마(79개 기사 게재)

Deepesh는 MUO의 Linux용 주니어 편집자입니다. 그는 모든 신규 이민자에게 행복한 경험을 제공하는 것을 목표로 Linux에 대한 정보 가이드를 작성합니다. 영화에 대해서는 잘 모르지만 기술에 대해 이야기하고 싶다면 그는 당신의 남자입니다. 여가 시간에는 책을 읽거나 다양한 음악 장르를 듣거나 기타를 연주하는 그를 볼 수 있습니다.

Deepesh Sharma가 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.