중복 찾기

다른 언어: EnglishEspañolFrançaisDeutsch日本語PortuguêsРусский中文

중복 찾기는 하나 이상의 파일에서 유사한 텍스트를 감지하기 위한 오픈 소스 애플리케이션입니다. 100% 중복과 유사하지만 동일하지 않은 콘텐츠를 찾는 데 사용할 수 있습니다. 이 도구는 일반 텍스트, Markdown, XML을 포함한 여러 형식과 호환됩니다.

중복 찾기 도구는 다음을 도와줍니다:

중복 콘텐츠 예

도구가 감지하는 것에 대한 아이디어를 얻을 수 있는 빠른 예입니다:

Chunk 1:
Open the Google Play Store on your Android device, search for "AwesomeApp", then tap "Install" to download and install the app.
Chunk 2:
Open the App Store on your iOS device, search for "AwesomeApp", then tap "Get" to download and install the app.

사용 방법

  1. 앱을 다운로드하세요. 또는 직접 빌드할 수 있습니다 소스. 실행: ./gradlew fatJar (소스 디렉토리에서 JDK 21 사용). 생성된 JAR 위치: build/libs/duplicate-finder.jar .
  2. 컴퓨터에 Java 21 이상이 설치되어 있는지 확인하세요
  3. 터미널에서 다운로드한 .jar 파일이 있는 폴더를 엽니다
  4. 실행 java -jar duplicate-finder.jar 다음 매개변수와 함께:

    매개변수 의미 예
    -r / --root 중복 콘텐츠를 검색하려는 폴더의 상대 경로 또는 절대 경로입니다. 기본값: 현재 작업 디렉토리. -r=./my-project/
    -o / --output 분석 결과를 저장하고자 하는 폴더의 상대 또는 절대 경로입니다. 기본값: 현재 작업 디렉토리를 기준으로 ./duplicate_finder_output. -o=./my-project/duplicates/
    -f / --fileMask

    파일: 검색할 파일 확장자를 앞의 점 없이 쉼표로 구분해 나열합니다. 모든 확장자를 포함하려면 *를 사용하세요.

    파서: 각 항목은 확장자만 쓰거나 extension:parser 형식으로 지정할 수 있습니다. 파서는 파일을 비교할 텍스트 조각으로 나누는 방법을 결정합니다. 생략하면 확장자에 따라 선택되며, 알 수 없는 확장자에는 file을 사용합니다.

    기본값: 기본 확장자 목록은 .md, .mdx, .xml, .adoc, .asciidoc, .properties입니다. -f를 지정하면 이 목록을 대체합니다.

    파서 이름(콜론 뒤에 지정)과 생성하는 텍스트 조각:

    • md – 마크다운 요소
    • line – 한 줄의 텍스트
    • xml – XML 요소
    • adoc – AsciiDoc 요소
    • file – 전체 파일의 내용
    • properties – 속성 값

    -f=md,mdx
    .md 및 .mdx 파일만 검색하며, 둘 다 Markdown 파서를 사용합니다.

    -f=topic:xml,txt:line
    .topic 파일은 XML 요소로, .txt 파일은 한 줄씩 나누어 검색합니다.

    -f="*:line"
    모든 파일을 검색하며, 각 줄을 별도의 텍스트 조각으로 취급합니다.

    -l / --minLength 분석할 텍스트 조각의 최소 길이(문자 수). 기본값: 100 (100자보다 짧은 텍스트 조각은 무시됨) -l=150
    -s / --minSimilarity 두 텍스트 조각이 중복으로 간주될 최소 유사도. 기본값: 0.9 (90%) -s=0.85
    -d / --minDuplicates 중복 그룹이 보고될 최소 중복 수입니다. 기본값: 1 (중복이 하나라도 있으면 됨) -d=5
    -ui / --ui 대화형 UI를 사용할지 여부를 결정합니다. 옵션:
    • none – UI 없음, 파일에만 기록
    • swing – 구형 UI
    • compose – 새 UI, 기본값
    -ui=none
    -v / --verbose 인덱싱 및 분석 시간을 콘솔에 출력합니다. 기본적으로 비활성화됩니다. 건너뛴 파일의 오류는 이 옵션과 관계없이 표시됩니다. -v
    -g / --gram 고급 ngram 길이 – 속도, 메모리 사용량 및 분석 정확도에 영향을 줍니다. 차이는 콘텐츠의 특정 사항에 따라 다릅니다. -g=10
    -w / --keepWhitespace 파싱된 내용에서 연속적인 공백을 유지합니다. 기본적으로 공백은 정규화되며, 연속적인 여러 공백 문자는 하나로 처리되고 하나로 표시됩니다. -w
    -i / --inline

    중첩된 요소의 내용을 둘러싸는 요소에 포함할지 여부. 예:

    <parent>Some content including <child>nested content</child></parent>

    이 옵션을 활성화하면 외부 요소가 'Some content including nested content'으로 구문 분석되며, 기본적으로는 'Some content including </>'으로 구문 분석됩니다.

    -i

설정 파일

콘텐츠 루트(-r로 지정한 디렉토리 또는 현재 디렉토리)의 duplicate-finder.properties에 설정을 저장할 수 있습니다. --를 제외한 긴 옵션 이름을 키로 사용하세요. 예:

fileMask=topic:xml,md,mdx
minSimilarity=0.85
minLength=200
ui=none

인수 없이 실행하면 현재 디렉토리에서 파일을 불러옵니다. 다른 콘텐츠 루트를 선택하려면 -r을 사용하세요. 누락된 설정은 기본값을 사용합니다. -o, -ui, -v 옵션으로 저장된 설정을 바꿀 수 있습니다. -s, -l, -d, -f, -g, -w 또는 -i를 전달하면 설정 파일 전체를 무시합니다.

명령어 예제

여기 당신의 명령어가 어떻게 보일지에 대한 예시가 있습니다:

java -jar duplicate-finder.jar -r=/Users/me.user/my-site -f=md,mdx -s=0.85 -d=5 -l=200

위 명령어는 다음을 수행합니다:

결과

설정과 프로젝트의 크기에 따라 분석이 완료되는 데 잠시 기다려야 할 수도 있습니다. 그 후 결과는 중복 뷰어에서 열리고 '-o' 명령줄 옵션으로 정의된 폴더에 저장됩니다. 기본적으로 텍스트 보고서는 작업 디렉토리의 ./duplicate_finder_output에 저장됩니다. 뷰어를 열지 않고 보고서만 저장하려면 -ui=none을 사용하세요.

이것이 중복 뷰어에서 보는 내용입니다:

Duplicate finder UI
  1. 도구 모음: 글꼴 크기 설정, 정렬 순서, 각 중복 그룹에 대해 단일 참조 청크(2)만 볼지 여부를 구성합니다. Fuzzy search에서 검색할 텍스트를 입력하고 유사도 기준을 조절해 비슷한 구절을 찾을 수 있습니다.
  2. 참조 청크 목록: 비교를 위한 참조로 사용할 청크를 선택합니다.
  3. 중복 청크 목록: 참조 청크(2)를 선택한 후 이 목록은 유사한 청크를 표시합니다. 중복을 미리 보려면 목록에서 선택하십시오.
  4. 참조 청크 미리 보기: 참조 청크(2)를 선택한 후에는 내용 미리 보기가 가능합니다. 공통 부분은 녹색으로 표시되며, 다른 부분은 빨간색으로 표시됩니다. 더 많은 중복 청크(3)가 이 부분을 공유할수록 더 녹색이 나타납니다.
  5. 중복 청크 미리 보기: 중복 청크를 선택한 후 미리 보기가 여기에 나타납니다. 선택한 참조 청크(4)와의 빠른 비교에 사용할 수 있습니다.

자세히 알아보기 및 연락처

이 도구의 개발에 관심이 있다면 관련 블로그 시리즈를 확인하세요:

피드백이 있으면 이 페이지 하단의 연락처를 사용하여 연락하십시오. 귀하의 의견과 기능 요청을 듣고 싶습니다.

라이센스

코드는 MIT 라이센스하에 라이센스가 부여되며, 이는 귀하가 어떠한 목적에서도 이를 자유롭게 사용할 수 있음을 의미합니다. 포크 및 수정할 수 있습니다.

all posts ->