Esta resposta é inspirada em um vídeo do YouTube . Atualizado para manter a ordem de classificação original, se isso for importante.
O Notepad ++ possui uma ferramenta TextFX interna que classifica as linhas selecionadas em ordem alfabética. Essa ferramenta pode ser invadida para classificar pelo comprimento das linhas, colocando espaços à esquerda de cada linha e certificando-se de que todas as linhas tenham o mesmo comprimento.
"The Zoo" vem em ordem alfabética antes de "Their House" porque o espaço é tratado como um personagem e vem antes de "i". __X
(fingir que os sublinhados são realmente espaços) também virá alfabeticamente antes _XX
. A idéia nesta resposta é adicionar espaços e números de linha para que __________092dog
sejam classificados acima _003alligator
.
Usarei o seguinte como exemplo de dados:
Lorem
ipsum
dolor
sit
amet
consectetur
adipisicing
Etapa 1. Adicione números de linha.
(Observação adicionada por barlop - uma observação para o leitor sobre esta etapa, não classificaremos de acordo com esses números de linha, classificamos de acordo com o comprimento das linhas. Mas a razão para adicionar os números de linha é que conhecer a ordem natural, de modo que quando, por exemplo, duas + linhas tiverem o mesmo comprimento, poderemos classificá-las de acordo com essa ordem natural)
Supondo que seu arquivo de texto tenha apenas os dados, coloque o cursor de texto (a linha vertical) na primeira posição do arquivo. Em seguida, no Edit
menu, selecione Column Editor...
( Alt+ C). Escolha "Número a inserir" e comece com 1, aumente 1 e inclua zeros à esquerda. Observe que isso manterá a ordem original ao classificar da sequência mais curta para a mais longa. Inverta todas as linhas primeiro se desejar classificar do maior para o menor.
1Lorem
2ipsum
3dolor
4sit
5amet
6consectetur
7adipisicing
Etapa 2. Preencha todas as linhas com espaços à esquerda.
Coloque o cursor do texto (a linha vertical) na primeira posição do arquivo. Em seguida, no Edit
menu, selecione Column Editor...
( Alt+ C). Insira espaços suficientes para que a menor linha de dados seja preenchida com o comprimento da maior linha de dados. Se sua linha mais curta tiver 4 caracteres e a mais longa 44, insira pelo menos 40 espaços.
__________1Lorem
__________2ipsum
__________3dolor
__________4sit
__________5amet
__________6consectetur
__________7adipisicing
Etapa 3. Corte as linhas em um comprimento uniforme.
Use a seguinte Localização / Substituição de Expressão Regular ( Ctrl+ H) para corresponder aos caracteres do lado direito iguais ou superiores ao comprimento da sua linha de dados mais longa.
^.*(.{50})$
Substitua tudo por $1
. Isso irá aparar tudo, exceto os 50 caracteres mais à direita de cada linha. Se seus dados forem maiores (ou curtos) que 50, ajuste-os {50}
na Expressão regular.
(Nota adicionada por barlop - a ideia aqui é que as linhas mais curtas tenham mais espaços no início )
_______1Lorem
_______2ipsum
_______3dolor
_________4sit
________5amet
_6consectetur
_7adipisicing
Etapa 4. Classifique as linhas.
Selecione todo o texto ( Ctrl+ A). Através do menu TextFX, vá para Text FX > TextFX Tools > Sort lines case sensitive (at column)
. Seus dados agora devem estar em ordem de comprimento, do menor para o maior. Se você deseja que eles sejam ordenados do maior para o menor, desmarque a Text FX > TextFX Tools > + Sort ascending
opção antes de classificar. Observe como os números das linhas também são revertidos.
_________4sit
________5amet
_______1Lorem
_______2ipsum
_______3dolor
_6consectetur
_7adipisicing
Etapa 5. Remova os espaços à esquerda.
Use outra Localização / Substituição de Expressão Regular ( Ctrl+ H) para corresponder aos espaços à esquerda.
^ *\d{4}
Esse é um espaço entre o sinal de intercalação e o asterisco. Substitua tudo por nada. Isso removerá todos os espaços à esquerda e os números de linha inseridos, se você tiver números de linha de 4 dígitos. Substitua {4}
por o número correto de dígitos nos números de linha.
sit
amet
Lorem
ipsum
dolor
consectetur
adipisicing
MACRO
Gravei as etapas acima usando o recurso de macro do Notepad ++ e ele não funciona. Não tenho certeza de qual etapa falhará, mas ainda não diagnosticei o porquê. Você provavelmente poderia usar o AutoHotKey para automatizar isso se fizer isso repetidamente.