메모장 ++에서 텍스트 파일의 줄을 줄 길이별로 정렬하려면 어떻게해야합니까? 있습니까? 플러그인이없는 경우,

notepad ++에서 텍스트 파일을 줄 길이별로 정렬하려면 어떻게해야합니까? 언급 된 작업에 사용 가능한 플러그인이 있습니까?
플러그인이없는 경우, 플러그인 Myself를 작성하기 위해 읽을 첫 번째 및 두 번째 학습서가 무엇입니까?



답변

이 답변은 YouTube 비디오에서 영감을 얻었습니다 . 중요한 경우 원래 정렬 순서를 유지하도록 업데이트되었습니다.

메모장 ++에는 선택한 줄을 알파벳순으로 정렬하는 내장 TextFX 도구가 있습니다. 이 도구는 각 줄의 왼쪽에 공백을 배치하고 모든 줄의 길이가 동일한 지 확인하여 줄 길이를 기준으로 정렬 할 수 있습니다.

공간은 문자로 취급되고 “i”앞에 오기 때문에 “동물원”은 “그들의 집”앞에 알파벳순으로옵니다. __X(밑줄은 실제로 공백 인 것처럼) 알파벳순으로옵니다 _XX. 이 답변의 아이디어는 공백과 줄 번호를 추가하여 __________092dog위에 정렬 되도록하는 것 _003alligator입니다.

다음을 예제 데이터로 사용하겠습니다.

Lorem
ipsum
dolor
sit
amet
consectetur
adipisicing

1 단계. 줄 번호를 추가하십시오.

(이 단계와 관련하여 독자를위한 참고 사항 인 barlop-에 의해 추가 된 메모는이 행 번호에 따라 정렬되지 않고 행 길이에 따라 정렬됩니다. 그러나 행 번호를 추가하는 이유는 예를 들어, 두 개의 + 행이 같은 길이 일 때 해당 자연 순서에 따라 해당 행을 정렬 할 수 있도록 자연 순서를 알 수 있습니다.)

텍스트 파일에 데이터 만 있다고 가정하면 텍스트 커서 (세로선)를 파일의 첫 번째 위치에 놓습니다. 그런 다음 Edit메뉴에서 Column Editor...( Alt+ C)를 선택하십시오 . “삽입 할 숫자”를 선택하고 1부터 시작하여 1 씩 증가하고 앞에 오는 0을 포함하십시오. 가장 짧은 문자열에서 가장 긴 문자열로 정렬 할 때 원래 순서대로 유지됩니다. 가장 길거나 짧게 정렬하려면 모든 줄을 먼저 뒤집으십시오.

1Lorem
2ipsum
3dolor
4sit
5amet
6consectetur
7adipisicing

2 단계. 모든 줄을 선행 공백으로 채 웁니다.

텍스트 커서 (세로선)를 파일의 첫 번째 위치에 놓습니다. 그런 다음 Edit메뉴에서 Column Editor...( Alt+ C)를 선택하십시오 . 가장 짧은 데이터 라인이 가장 긴 데이터 라인 길이까지 채워지도록 충분한 공간을 삽입하십시오. 가장 짧은 줄에 4 자, 가장 긴 44자가 있으면 40 자 이상을 삽입해야합니다.

__________1Lorem
__________2ipsum
__________3dolor
__________4sit
__________5amet
__________6consectetur
__________7adipisicing

3 단계. 선을 일정한 길이로 자릅니다.

다음 정규식 찾기 / 바꾸기 ( Ctrl+ H)를 사용하여 가장 긴 데이터 행의 길이와 같거나 초과하는 오른쪽 문자를 일치 시키십시오.

^.*(.{50})$

로 모두 교체하십시오 $1. 모든 줄의 가장 오른쪽에있는 50자를 제외한 모든 것을 다듬습니다. 데이터가 50보다 길거나 짧은 {50}경우 정규식에서를 조정하십시오 .

(barlop에 의해 추가 된 메모-여기의 아이디어는 가장 짧은 줄이 처음에 가장 많은 공간을 가짐 )

_______1Lorem
_______2ipsum
_______3dolor
_________4sit
________5amet
_6consectetur
_7adipisicing

단계 4. 라인을 정렬하십시오.

모든 텍스트 ( Ctrl+ A)를 선택하십시오 . TextFX 메뉴를 통해로 이동하십시오 Text FX > TextFX Tools > Sort lines case sensitive (at column). 이제 데이터의 길이가 가장 짧은 것부터 가장 긴 것이어야합니다. 가장 긴 순서에서 가장 짧은 순서로 Text FX > TextFX Tools > + Sort ascending정렬 하려면 정렬하기 전에 옵션을 선택 취소하십시오 . 줄 번호가 어떻게 반대로 바뀌는 지 유의하십시오.

_________4sit
________5amet
_______1Lorem
_______2ipsum
_______3dolor
_6consectetur
_7adipisicing

단계 5. 선행 공백을 제거하십시오.

다른 정규식 찾기 / 바꾸기 ( Ctrl+ H)를 사용하여 선행 공백을 일치시킵니다.

^ *\d{4}

캐럿과 별표 사이의 공간입니다. 아무것도없는 것으로 교체하십시오. 4 자리 줄 번호가있는 경우 모든 선행 공백과 삽입 된 줄 번호가 제거됩니다. 를 교체 {4}하여 줄 번호에서 숫자의 올바른 번호.

sit
amet
Lorem
ipsum
dolor
consectetur
adipisicing

매크로

메모장 ++의 매크로 기능을 사용하여 위의 단계를 기록했지만 작동하지 않습니다. 어떤 단계가 실패했는지 확실하지 않지만 그 이유를 진단하지 못했습니다. 반복적으로 수행하면 AutoHotKey를 사용하여이를 자동화 할 수 있습니다.


답변

아니, 나는 생각하지 않습니다. 가장 가까운 것은 TextFx 플러그인이지만 줄 길이가 아닌 문자 기반 정렬입니다. 가장 좋은 방법은 텍스트를 스프레드 시트에 던져서 정렬하는 것입니다 ( LEN()함수 를 사용하여 별도의 계산 열을 사용하여 ).


답변

CSV 파일 에서 N ++SQL을 사용할 수 있습니다 ! 예를 들어 다음이있는 경우 :

col1;
hgfhfghfhg;
khjfhgfhfghfgh;
kjhfhgfhfhgfghfhf;
lkjgjghjhg;
lkjgjg;

select * from data order by length(col1) desc내림차순으로 정렬 명령 을 실행할 수 있습니다 . “데이터”는 현재 파일을 의미합니다. “col1”-첫 번째 (및 마지막) 열의 이름입니다.

불행히도 한 열 텍스트에서 줄 다음에 분리 문자를 허용하지 않는 버그가있을 수 있습니다.


답변

또는 리눅스와 nedit가 발생하면 :

ctrl-a
alt-r
perl -e 'print sort { length($a) <=> length($b) } <>'


답변