[visual-studio-code] Visual Studio Code에서 중복 된 줄을 제거하려면 어떻게해야합니까?

다음 텍스트가 있다고 가정합니다.

abc
123
abc
456
789
abc
abc

모든 “abc”줄을 제거하고 하나만 유지하고 싶습니다. 나는 정렬에 신경 쓰지 않는다. 결과는 다음과 같아야합니다.

abc
123
456
789



답변

줄 순서가 중요하지 않은 경우

사전 순으로 행을 정렬하지 않은 경우 사전 순으로 정렬하고 다음 단계를 수행합니다.
(관련 질문에 따라 정규식을 사용하여 파일에서 중복 된 행을 어떻게 찾고 제거합니까? )

  1. Control+F

  2. “바꾸기 모드”전환

  3. “정규식 사용”( .*기호가 있는 아이콘 )을 전환합니다.

  4. 에서 검색 필드에 입력^(.*)(\n\1)+$

  5. 바꿀 내용 “필드에 다음을 입력합니다.$1

  6. 모두 바꾸기 버튼( “모두 바꾸기”)를 클릭합니다 .

줄 순서 중요해서 정렬 할 수없는 경우

이 경우 VS Code 외부의 솔루션 ( 여기 참조 )을 사용하거나-문서가 너무 크지 않고 모두 바꾸기 단추를 스팸해도 괜찮다면 이전 단계를 따르되 4 단계와 5 단계에서 수행하십시오. 다음을 입력하십시오
( 정렬하지 않고 특정 중복 줄 제거 기준 )

주의 : 너무 많은 줄 (1000+)이있는 파일에 대한 블록; VS 코드가 충돌 할 수 있습니다. 경우에 따라 빈 줄이 생길 수 있습니다.

  • 검색 :((^[^\S$]*?(?=\S)(?:.*)+$)[\S\s]*?)^\2$(?:\n)?

  • 다음으로 대체 :$1

그런 다음 중복 항목이있는만큼 “모두 바꾸기”버튼을 클릭합니다 .

버튼을 클릭했을 때 줄 수가 줄어들지 않으면 충분하다는 것을 알 수 있습니다. 문서의 마지막 줄로 이동하여 계속 확인하십시오.


답변

다음은 매우 흥미로운 확장입니다. Transformer

풍모:

  • 고유 한 라인
  • 새 문서로 고유 한 줄
  • 필터 라인
  • 줄을 새 문서로 필터링
  • 라인 정렬
  • 길이로 줄 정렬
  • 커서에 정렬
  • CSV 정렬
  • 컴팩트 CSV
  • 새 문서로 복사
  • 라인 선택
  • 라인을 JSON으로
  • 트림 라인
  • 중복 라인을 새 문서로 계산
  • 매크로

중복 줄 제거 :

  • 문서에서 중복 된 줄을 제거합니다.

  • 선택이없는 경우 선택 또는 현재 블록에서 작동

“Unique Lines”명령 외에는 많이 사용하지 않았지만 꽤 잘된 것 같습니다 (매크로 레코더 시도 포함!).


답변

@ Marc.2377의 답장에 추가하려면.

순서가 중요하고 중복 된 줄의 마지막 줄만 유지하는 데 신경 쓰지 않는 경우 비어 있지 않은 중복 줄만 제거하려면 다음 정규식을 검색하면됩니다.

^(.+\n)(?=(?:.*\n)*?\1)

중복 된 빈 줄도 제거하려면 *대신 사용하십시오.+

^(.*\n)(?=(?:.*\n)*?\1)

아무것도 교체하지 마십시오.

채워진 검색 및 바꾸기 상자의 스크린 샷

이것은 한 줄을 취하고 더 많은 (아마도 0) 줄을 찾은 다음 정확히 동일한 줄을 찾으려고 시도합니다. 취한 선을 제거합니다.

이것은 일회성 정규식입니다. 교체 버튼을 스팸 할 필요가 없습니다.


답변

방금 동일한 문제가 발생하여 Visual Studio Code 패키지 “Sort lines”을 발견했습니다. 자세한 내용은 Visual Studio Code 마켓 플레이스를 참조하세요 (예 : 정렬 라인 ).

이 패키지에는 “Sorting lines (unique)”옵션이 있습니다. 줄의 시작 / 끝에있는 모든 공백을 처리하십시오. 라인이 고유 한 것으로 간주되는지 여부에 영향을줍니다.


답변

DupChecker 확장을 설치하고를 누르고F1 “중복 확인”을 입력합니다.

중복을 확인하고 제거 할 것인지 묻습니다.


답변

정규식을 찾아서 바꾸십시오 .

  • 찾기:
    ^(.+)((?:\r?\n.*)*)(?:\r?\n\1)$

  • 바꾸다:
    $1$2

첫 번째 그룹에 약간의 차이를 도입 할 수 있습니다.


답변

실제로 Visual Studio Code에서는 아니지만 작동하면 작동합니다.

  1. 새 Excel 스프레드 시트 열기
  2. 데이터를 열에 붙여 넣기
  3. 데이터 탭으로 이동
  4. 데이터 열 선택 (아직 선택하지 않은 경우)
  5. 클릭 중복 제거 (다소 줄의 중간을)
  6. OK중복을 제거 하려면 클릭하십시오 .

Visual Studio Code를 지정 했으므로 가장 좋은 대답은 아니지만 내가 말했듯이 작동하면 작동합니다. 🙂