처음으로 중복 된 라인이 실시간으로 비용이 들었을 때,나는 내가 배송 한 Laravel 앱에 대해 이메일 주소의 두 개의 내보낸 CSV 열을 조정하고있었습니다. 한 목록에는 4,200 행이 있었고 다른 목록에는 3,900 이 있었고 겹치는 곳에는 두 번 나타나는 몇 백 개의 주소가있었습니다. 스프레드 시트는 그들을 추론 할 수 있었지만 열 정렬을 고집했으며 단계적 롤아웃을 위해 보존 된 원래 보내기 주문이 필요했습니다. 그래서 나는 그 시점에서 우리 대부분이하는 일을했습니다: 스크래치 파일을 열고 목록을 붙여 넣은 다음 손으로 줄을 삭제하기 시작했습니다. 20 분 후에 나는 두 개를 놓치고 하나의 오타를 도입했습니다.
그것이 바로 문제입니다 중복 라인 리무버 해결하기 위해 존재합니다. 텍스트 블록에서 반복되는 줄을 제거하고 다른 모든 것을 정확히 그대로 둡니다. 정렬,재포맷, 고객 데이터가 포함된 파일을 제어하지 않는 서버에 업로드하지 않고 붙여넣고 중복 처리 방법을 선택하고 깨끗한 결과를 복사합니다.
TL;DR: 목록을 붙여넣고 모드를 선택하고 중복 제거된 텍스트를 원래 순서로 다시 가져옵니다. "Keep unique" 각 줄의 추가 복사본을 제거합니다. "모든 중복을 제거" 쌍둥이가 있는 모든 줄을 삭제하고 이미 고유한 줄만 남깁니다. "Duplicates" 만 유지; 반복된 내용만 정확하게 보여줍니다. 케이스 접기,트리밍 및 빈 줄 제거는 선택 사항입니다. 모든 것이 브라우저에서 실행되므로 목록이 기계를 떠나지 않습니다.
중복된 줄을 제거하는 것이 왜 복잡해지나요?
표면적으로 "중복된 lines"을 제거하면 하나의 작업처럼 들립니다. 실제로 그것은 당신이하고있는 일에 따라 적어도 세 가지 다른 것을 의미하며 대부분의 도구는 그 중 하나만 제공합니다.
메일링 리스트를 정리하는 경우 각 주소의 복사본을 하나씩 원하고 어떤 복사본이 살아남는지 신경 쓰지 않습니다. 구성 파일을 감사하는 경우 실수로 복제된 줄만 찾아 조사할 수 있습니다. 병합된 두 내보내기를 비교하는 경우 두 번 이상 나타나는 모든 줄을 제거하여 진정으로 고유한 항목이 남게 될 수 있습니다. 이는 동일한 입력에서 반대되는 결과이며 스프레드시트에 도달합니다's "remove duplicates" 버튼은 그 중 정확히 하나를 제공합니다.
순서는 또 다른 복잡함입니다. 도구가 중복 제거를 쉽게 하기 위해 목록을 정렬하는 순간 정보를 파괴했습니다. 로그 줄은 연대순입니다. 내보낸 레코드는 종종 암시적 시퀀스를 전달합니다. 재생 목록,빌드 순서,마이그레이션 단계 목록: 이 모든 것은 순서 때문에 의미가 있습니다. 순서를 보존하는 중복 제거기는 먼저 정렬하는 것보다 엄격하게 더 많은 작업을 수행합니다. 왜냐하면 살아남은 각 줄이 어디에 속하는지 기억해야 하기 때문입니다.
세 가지 제거 모드는 무엇입니까?
이 도구는 세 가지 실제 작업이기 때문에 세 가지 모드를 제공합니다. 동일한 입력에 대해 각 모드가 반환하는 내용은 다음과 같습니다.
| 모드 | 그것이 지키는 것 | 일반적인 사용 |
|---|---|---|
| 독특함을 유지하세요 | 모든 줄의 사본 1부 | 메일링 리스트 중복 제거, 단어 목록 정리 |
| 모든 중복 제거 | 딱 한 번 나온 대사들만 | 병합된 내보내기 전체에서 진정으로 고유한 행을 분리합니다 |
| 중복만 유지하세요 | 반복되는 각 줄의 사본 1부 | 실수로 중복된 항목을 감사합니다 |
9줄 목록을 작성하세요: apple, Banana, cherry, apple, date, banana, cherry, apple, fig. 대소문자를 구분하는 일치 기능을 갖춘 고유 유지 모드에서 얻을 수 있습니다 apple, Banana, cherry, date, banana, cherry, fig, 왜냐하면 Banana 그리고 banana 케이스를 접을 때까지 다른 문자열입니다. remove-all 모드에서 당신은 얻을 Banana, date, banana, fig는,그것들이 결코 반복되지 않는 유일한 선이기 때문에. keep-only-duplicates 모드에서 당신은 얻습니다 apple, cherry를,두 번 이상 나타난 두 줄 같은 입력,세 개의 답,그리고 어떤 질문을 할지 고르죠.
첫 번째 작업을 유지하는 것과 마지막 작업을 유지하는 것은 어떻게 됩니까?
keep-unique 및 keep-only-duplicates 모드에서는 반복되는 각 줄의 복사본이 하나씩 남아 있습니다. "keep first" 및 "keep last" 토글이 어느 것을 결정합니다.
이것은 보이는 것보다 더 중요합니다. 각 줄은 이후 항목이 이전 항목을 수정하는 레코드라고 가정합니다. 이는 부록 전용 로그 및 이벤트 스트림에서 일반적입니다. 첫 번째 버전이 아닌 마지막 버전을 원합니다. Keep-last 는 목록을 걷고,각각의 뚜렷한 줄의 최종 위치를 찾고,거기에서 줄을 내보내므로 살아남은 복사본은 여전히 마지막 발생이 발생한 순서대로 나타납니다. Keep-first 는 반대를 수행하고 각 줄을 가장 초기 위치에서 내보냅니다. 대부분의 정리 작업의 경우 중복된 줄은 어쨌든 동일하기 때문에 차이가 보이지 않지만 위치를 선택하면 목록을 반전하고 중복을 제거하고 되돌릴 수 없습니다.
중복 라인 리무버를 어떻게 사용합니까?
워크플로는 의도적으로 짧습니다.
- 입력 상자에 텍스트를 붙여넣습니다. 한 줄에 하나의 항목입니다. 이 도구는 입력할 때 줄을 계산합니다.
- 모드 선택: 고유 유지,모든 중복 제거 또는 중복만 유지 복사본 하나를 유지하는 모드에 있는 경우 첫 번째 발생 또는 마지막 발생이 살아남는지 여부를 선택합니다.
- 일치하는 옵션을 설정합니다. " 를 켜십시오;case" 를 무시하십시오; 그래서
Apple그리고apple함께 접기, "Trim whitespace" 따라서 길 잃은 선행 또는 후행 공백이 있는 선은 여전히 일치하고 "빈 lines" 제거; 같은 패스에 빈 행을 삭제합니다. - 출력을 읽습니다. 헤더는 몇 개의 줄이 나왔는지,몇 개가 제거되었는지 보여 주므로 한 번의 클릭으로 복사하기 전에 결과를 온전하게 확인할 수 있습니다.
출력이 실시간으로 업데이트되므로 "case" 무시;를 켜고 끄고 제거된 개수 변경을 볼 수 있습니다. 이는 중복 항목이 정확한지 아니면 대문자로만 다른지 확인하는 빠른 방법입니다.
일치에는 케이스 및 공백 옵션이 필요한 이유는 무엇입니까?
당신과 똑같이 생긴 두 줄이 항상 컴퓨터와 같은 것은 아니다. [email protected] 그리고 [email protected] 이메일 주소의 도메인 부분은 대소문자를 구분하지 않고 대부분의 제공자는 로컬 부분도 그렇게 취급하기 때문에 실제로 동일한 사서함입니다. 그러나 원시 문자열로 다르기 때문에 정확한 중복 제거기는 둘 다 유지합니다. "Case" 무시; 옵션은 비교하기 전에 둘 다 공통 형식으로 접으므로 하나로 계산됩니다.
화이트스페이스는 또 다른 침묵의 말썽꾼입니다. 테이블,터미널 또는 PDF 에서 행을 복사하면 종종 볼 수 없는 후행 공백이나 길 잃은 탭을 집어 올립니다. cherry 그리고 cherry 당신이 그들을 손질할 때까지는 다른 선입니다. " 를 켜기;Whitespace" 를 손질하십시오; 그렇지 않으면 살아날 가까운 중복의 이 전체적인 종류를 붙잡는 일치하기 전에 주위 공백을 벗깁니다. 비교는 아직도 의미심장하게 내부 간격을 취급합니다,그래서 New York 그리고 NewYork 구별된 상태를 유지하세요. 이것이 바로 여러분이 원하는 것입니다.
이는 도구가 대소문자를 자동으로 다듬거나 접지 않는 이유이기도 합니다. 예를 들어 소스 코드 조각을 중복 제거할 때 대문자 또는 들여쓰기가 핵심인 경우가 있습니다. 옵션은 기본적으로 꺼져 있으므로 도구는 표시되는 작업을 정확하게 수행하며 데이터가 호출할 때만 더 느슨한 일치를 선택합니다.
이것은 목록을 정렬하거나 비교하는 것과 어떻게 다른가요?
X-1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 10 선 정렬기 중복을 제거할 수도 있지만 목록 정렬의 일부로 제거되며 항상 첫 번째 발생을 유지합니다. 알파벳순으로 중복 제거된 결과를 원할 때 완벽합니다. 순서가 신성할 때 잘못된 도구입니다. 중복 줄 제거기는 정렬하지 말아야 하는 경우를 위해 정확하게 존재합니다.
X-1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 1000 X 10 목록 비교 도구는 다른 질문에 다시 대답합니다: 두 개의 목록이 주어지면,둘 다에 무엇이 있고,첫 번째에만 있고,두 번째에만있는 것이 있습니다. 그것은 두 입력에 걸쳐 설정된 산술입니다. 중복 된 선 제거는 단일 입력 내에서 반복에 관한 것입니다. 내부 중복을 찾기 위해 비교 도구의 두 슬롯에 동일한 목록을 붙여 넣는 자신을 발견하면 중복 제거기가 더 직접적인 도구입니다.
그리고 필요한 것이 정리된 목록이 아닌 개수라면, 워드 카운터 총계를 보고하는 반면, 중복 제거기는 제거된 라인 수를 보고합니다. 올바른 라인에 도달하면 단계가 절약됩니다. 좁은 작업에 대한 올바른 도구를 선택하는 것은 내부화할 가치가 있는 주제입니다; 작고 집중된 유틸리티 세트를 가까이에 유지하기 위한 더 넓은 경우가 이 가이드에 나와 있습니다 개발자 생산성 도구.
데이터가 비공개로 유지되나요?
예,그리고 이것은 마케팅 라인이 아닙니다. 전체 작업은 브라우저 탭 내부의 JavaScript 에서 실행됩니다. 업로드 단계도 없고 API 호출도 없으며 서버 측 처리도 없습니다. 고객 이메일,내부 호스트 이름 또는 라이센스 키 목록을 붙여 넣을 때 해당 텍스트는 자체 시스템의 메모리에서 조작되고 탭을 닫을 때 삭제됩니다. browser's 네트워크 패널을 열고 작업하는 동안 침묵을 유지하거나 페이지가 로드된 후 인터넷에서 연결을 끊고 도구가 계속 작동하는지 확인하여 확인할 수 있습니다.
규제되거나 민감한 데이터를 처리하는 모든 사람에게 해당 속성은 호스팅 된 도구보다 클라이언트 측 도구를 선호하는 전체 이유입니다. 목록을 백엔드에 조용히 게시하는 편리한 온라인 중복 제거기는 의식적으로하지 않은 데이터 처리 결정입니다. 브라우저 기반 유틸리티와 서버 기반 유틸리티 간의 절충안은 완전히 이해할 가치가 있으며이 개요 온라인 도구를 통한 데이터 개인 정보 보호 실제 위험이 있는 부분을 다룹니다.
실질적인 한계는 무엇입니까?
작업이 메모리에서 발생하기 때문에 천장은 업로드 캡이 아닌 브라우저 탭입니다. 실제로 수만 개의 라인을 붙여넣고 즉각적인 결과를 얻을 수 있습니다. 수십만 개의 라인에 있는 목록은 여전히 작동하지만 도구 수준이 아닌 탭 수준 제한인 입력,출력 및 조회 구조를 한 번에 유지하는 메모리 압력을 느끼기 시작합니다. 진정으로 거대한 파일의 일회성 정리를 위해 다음과 같은 명령줄 패스가 있습니다 awk '!seen[$0]++' 더 나은 악기입니다; 클립보드에 있는 일일 목록의 경우 브라우저 도구가 더 빠르게 접근할 수 있습니다.
도구는 부분 문자열이나 필드가 아닌 전체 줄을 비교합니다. 중복된 항목이 "같은 레코드이지만 다른 타임스탬프 열이 있는 경우," 줄이 동일하지 않고 도구가 올바르게 구분된 것으로 처리합니다. 그런 상황에서는 먼저 다양한 열을 제거한 다음 중복을 제거합니다. 비교가 전체 줄임을 알면 매번 결과를 예측할 수 있습니다.
이 도구를 언제 사용해야 합니까?
정직한 대답은: 당신이 원하는 반복과 클립 보드에 목록을 가지고 언제든지 당신은 당신이 원하는 순서를 유지. 메일 링리스트와 이메일 내보내기는 명백한 경우입니다. SEO 도구로 가져 오기 전에 키워드 세트를 정리하는 것은 특히 XNUMX 와 짝을 이루는 또 다른 방법입니다 케이스 변환기 소스가 대문자를 혼합했을 때. 로그 라인을 중복 제거하여 고유한 오류 메시지를 찾고, 종속성 목록을 정리하고, 붙여넣은 태그 열을 축소합니다: 이는 모두 5분 작업이었던 5초 작업입니다.
이들을 하나로 묶는 패턴은 데이터가 텍스트이고 반복이 정확하거나 거의 정확하며 순서가 중요하다는 것입니다. 세 가지 모두 유지되면 손 편집이 느리고 오류가 발생하기 쉬우며 스프레드시트가 순서를 파괴하고 클라이언트 측 중복 제거기가 정확히 올바른 도구입니다.
목록을 중복 제거 할 때 흔히 발생하는 실수는 무엇입니까?
내가 가장 자주 보는 실수는 청소하기 전에 중복을 제거하는 것입니다. 목록에 후행 공백이나 혼합 대문자가 있는 경우 정확한 일치 패스는 거의 중복을 남기고 도구 "missed some."를 마무리하지 않았습니다; 정확하게 일치하도록 요청했고 선은 실제로 달랐습니다. 트림을 켜고 대소문자를 먼저 무시한 다음 중복을 줄이며 제거된 선의 수는 일반적으로 최종적으로 직관과 일치하는 방식으로 점프합니다. 도구는 올바른 순서로 단일 패스에서 두 단계를 모두 실행하므로 옵션을 활성화하는 것이 전부입니다.
두 번째 실수는 질문에 잘못된 모드를 사용하는 것입니다. & quot;duplicates"를 찾고 싶습니다 and & quot;duplicates"를 제거하려면 비슷한 소리지만 반대 모드를 호출합니다. 반복되는 것을 볼 것으로 예상하여 모두 제거 모드로 전환하면 정확한 역: 고유 한 줄을 얻습니다. 모드 레이블을 완료 한 문장으로 읽으십시오. 고유 유지는 각각 하나를 유지한다는 것을 의미합니다. 모든 중복을 제거한다는 것은 쌍둥이가있는 모든 것을 삭제한다는 것을 의미합니다. 중복 만 유지한다는 것은 쌍둥이를 보여 주라는 것을 의미합니다.
세 번째는 비교가 전체 라인이라는 것을 잊어 버리는 것입니다. 타임스탬프 또는 ID 열에서만 다른 두 레코드는 라인이 동일하지 않기 때문에 도구에 관한 한 중복되지 않습니다. "duplicate" 당신이 신경 쓰는 것은 라인의 하위 집합이며,다양한 부분을 먼저 벗겨 낸 다음 결과를 추론합니다. 일치로 계산되는 것에 대해 명시 적 인 것은 출력을 예측 가능하게 만드는 것이며,예측 가능한 것은 작은 도구의 전체 요점입니다: 입력과 설정을보고 클릭하기 전에 정확히 무엇이 나올지 알 수 있어야합니다.
자주 묻는 질문
텍스트에서 중복 줄을 어떻게 제거합니까?
한 줄에 한 항목씩 중복 줄 제거기에 텍스트를 붙여넣고 기본 고유 모드를 유지합니다. 이 도구는 각 줄의 첫 번째 복사본을 유지하고 나머지는 즉시 제거한 다음 정리된 결과를 복사할 수 있습니다.
라인의 원래 순서를 유지합니까?
예. 정렬 및 중복 제거 접근 방식과 달리 이 도구는 중복된 항목을 제자리에 제거하고 살아남은 줄을 원래 순서로 둡니다. 이는 로그, 내보내기 및 시퀀스에 의미가 있는 모든 목록에 중요합니다.
중복된 줄만 유지할 수 있나요?
예. keep-only-duplicates 모드로 전환하면 도구가 두 번 이상 나타난 각 줄의 단일 복사본을 반환하므로 어떤 항목이 반복되었는지 정확히 확인할 수 있습니다.
세 가지 모드의 차이점은 무엇입니까?
Unique 는 모든 줄의 복사본을 하나씩 유지합니다. Remove-all 은 중복된 모든 줄을 삭제하고 이미 고유한 줄만 남깁니다. Keep-only-duplicates 는 반복된 줄만 각각 한 개씩 반환합니다.
중복을 찾을 때 케이스를 어떻게 무시합니까?
무시-케이스 옵션을 켭니다. 활성화하면 "Apple" 및 "apple"와 같이 대문자만 다른 선은 같은 선으로 취급되어 하나로 축소됩니다.
왜 똑같이 생긴 두 줄은 중복으로 취급하지 않는 것일까?
기본적으로 비교는 정확하므로 후행 공간이나 다른 대문자로 인해 두 줄이 구분됩니다. 트림을 켜서 주변 공백을 제거하고 일치하기 전에 대문자를 접으려면 대소문자를 무시하세요.
빈 줄도 제거할 수 있나요?
예. 빈 줄 제거 옵션을 활성화하면 중복이 일치하기 전에 빈 줄이 모두 동일한 패스에 삭제되므로 출력에 남은 간격이 없습니다.
여기에서 민감한 목록을 청소하는 것이 안전합니까?
예. 모든 처리는 전적으로 JavaScript 를 사용하는 브라우저에서 이루어집니다. 텍스트는 업로드되거나 저장되지 않으며,페이지가 로드된 후에도 도구는 네트워크 연결 없이 계속 작동합니다.



