답변:
메모장 ++은 행별로 정렬하고 중복 줄을 동시에 제거하려는 경우이 작업을 수행 할 수 있습니다.
TextFX 플러그인이 필요합니다. 이전 버전의 Notepad ++에 포함 되었으나 최신 버전 인 경우로 이동하여 메뉴에서 추가 할 수 있습니다 Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install
. 경우에 따라 호출 될 수도 TextFX Characters
있지만 이것은 같은 것입니다
필요한 확인란과 버튼이 메뉴 아래에 나타납니다 TextFX -> TextFX Tools
.
"고유 출력 만 정렬 ..."이 선택되어 있는지 확인하십시오. 다음으로, 텍스트 블록 을 선택하십시오 (전체 문서를 선택하려면 Ctrl+ A). 마지막으로 "대소 문자 구분 정렬"또는 "대소 문자 구분 정렬"을 클릭하십시오.
Notepad ++ 버전 6부터이 정규식을 검색 및 바꾸기 대화 상자에서 사용할 수 있습니다.
^(.*?)$\s+?^(?=.*^\1$)
그리고 아무것도 교체 . 파일의 마지막 항목은 모든 중복 행에서 제외됩니다.
이를 위해 정렬이 필요하지 않으며 중복 행은 파일의 어느 위치 에나있을 수 있습니다!
"정규 표현식"및 ".와 일치하는 개행"옵션을 확인해야합니다.
^
줄의 시작과 일치합니다.
(.*?)
모든 문자를 0 번 이상 일치하지만 가능한 한 적은 수로 일치합니다 (줄에 정확히 일치하면 ". 개행과 일치"옵션으로 인해 필요함). 대괄호로 인해 일치하는 행이 저장되며\1
$
줄의 끝과 일치합니다.
\s+?^
이 부분은 다음 행이 시작될 때까지 모든 공백 문자 (개행 문자!)와 일치합니다. ==> 이렇게하면 일치하는 행 뒤의 개행 문자가 제거되어 교체 후에 빈 행이 없습니다.
(?=.*^\1$)
이것은 긍정적 인 예견입니다. 이것은이 정규 표현식에서 중요한 부분입니다. 파일의 다른 곳에 정확히 같은 행이있을 때 행이 일치하고 제거됩니다.
. matches newline
하면 트릭이 수행됩니다.
행이 서로 바로 뒤에 있으면 정규식 바꾸기를 사용할 수 있습니다.
검색 패턴 : ^(.*\r?\n)(\1)+
다음으로 교체하십시오. \1
^(.*\r?\n)(\1)+
메모장 ++
-> 바꾸기 창
검색 모드에서 정규식 단일 선택 단추를 선택했는지 확인하십시오.
무엇을 찾다:
^ (. *) (\ r? \ n \ 1) + $
다음으로 교체하십시오.
$ 1
전에:
우리는 거기에 생각
우리는 거기에 생각
한 줄
~하는 것이 가능하니
~하는 것이 가능하니
후:
우리는 거기에 생각
한 줄
~하는 것이 가능하니
행 순서에 신경 쓰지 않는다면 (당신이 생각하지 않는) Linux / FreeBSD / Mac OS X / Cygwin 상자를 사용하여 다음을 수행 할 수 있습니다.
$ cat yourfile | sort | uniq > yourfile_nodups
그런 다음 메모장 ++에서 파일을 다시여십시오.
'cat' is not recognized as an internal or external command, operable program or batch file.
cat yourfile | sort -Unique
Notepad ++의 후자 버전에는 TextFX 플러그인이 전혀 포함되어 있지 않습니다. 중복을 정렬 / 제거하기 위해 플러그인을 사용하려면 플러그인을 다운로드하여 설치 (추가)하거나 플러그인 관리자를 사용하여 추가해야합니다.
A) 쉬운 방법 ( 여기에 설명되어 있음 ).
플러그인-> 플러그인 관리자-> 플러그인 관리자 표시-> 사용 가능한 탭-> TextFX 문자-> 설치
B) 다른 버전이 필요하거나 쉬운 방법이 작동하지 않는 경우 더 복잡합니다.
SourceForge에서 플러그인을 다운로드하십시오.
zip 파일을 열고 NppTextFX.dll을 추출 하십시오.
장소 NppTextFX.dll : 같은 메모장 ++ 플러그인 디렉토리,
C : \ 프로그램 파일 \ 메모장 ++ \ 플러그인
메모장 ++를 시작하면 TextFX는 파일 메뉴 항목 중 하나입니다 (Colin Pickard의 위의 답변 # 1에서 볼 수 있음)
TextFX 플러그인을 설치 한 후 답변 # 1의 지침에 따라 중복 항목을 정렬하고 제거하십시오.
또한 이 명령을 자주 사용하거나 정렬을 위해 TextPad에서 F9와 같은 키보드 단축키를 복제하려는 경우 설정> 단축키 매퍼를 사용하여 키보드 단축키 설정을 고려하십시오 .
C:\Users\<your_user>\AppData\Local\Notepad++\plugins\NppTextFX
. 그 외에는 여전히 잘 작동합니다.
정규식을 검색하십시오. \b(\w+)\b([\w\W]*)\b\1\b
를 교체 : $1$2
히트 교체 파일에서 정규 표현식에 더 이상 일치가 없을 때까지 버튼을 누릅니다.
아무도 나를 위해 일하지 않았다.
해결책은 다음과 같습니다.
바꾸다
^(.*)\s+(\r?\n\1\s+)+$
와
\1
^(.*)\s+(\r?\n\1\s+)+$
안돼 ^(.*)\s*(\r?\n\1\s*)+$
?
Notepad ++에서는 플러그인 관리자를 사용할 수 없습니다 (배포와 함께 제공되지 않음). 수동으로 설치해야하며 ( https://github.com/bruderstein/nppPluginManager/releases ) 그렇게해도 많은 플러그인을 더 이상 사용할 수 없습니다 (TextFX 없음).
필요한 기능이 포함 된 다른 플러그인이있을 수 있습니다. 그 외에 메모장 ++에서 수행하는 유일한 방법 은 일치하고 교체하기 위해 특별한 정규식 을 사용하는 것입니다 ( Ctrl+ F→ 바꾸기 탭).
편집 메뉴 항목 (트리밍, 빈 줄 제거, 정렬, EOL 변환)을 통해 사용 가능한 많은 기능이 있지만 "고유 한"작업은 없습니다.
Windows 10을 사용하는 경우 Bash 를 활성화하고 (Microsoft Store에서 Ubuntu를 입력하고 설명의 지침에 따라 설치)을 사용할 수 있습니다 cat your_file.txt | sort | uniq > your_file_edited.txt
. 물론 "your_file.txt"와 동일한 작업 디렉토리에 있거나 경로를 통해 참조해야합니다.