Cette réponse est inspirée d'une vidéo YouTube . Mis à jour pour conserver l'ordre de tri d'origine, si cela est important.
Notepad ++ possède un outil TextFX intégré qui trie les lignes sélectionnées par ordre alphabétique. Cet outil peut être détourné pour trier selon la longueur des lignes en plaçant des espaces à gauche de chaque ligne et en s'assurant que toutes les lignes sont de la même longueur.
"Le zoo" vient alphabétiquement avant "leur maison" car l'espace est traité comme un personnage et précède "i". __X
(prétendre que les traits de soulignement sont vraiment des espaces) viendra de même par ordre alphabétique auparavant _XX
. L'idée dans cette réponse est d'ajouter des espaces et des numéros de ligne afin qu'ils __________092dog
soient triés ci-dessus _003alligator
.
Je vais utiliser les données suivantes comme exemple:
Lorem
ipsum
dolor
sit
amet
consectetur
adipisicing
Étape 1. Ajoutez des numéros de ligne.
(Note ajoutée par barlop - une note pour le lecteur concernant cette étape, nous ne trierons pas en fonction de ces numéros de ligne, nous trierons en fonction de la longueur des lignes. Mais la raison de l'ajout des numéros de ligne est que nous connaître l'ordre naturel, de sorte que lorsque, par exemple, deux lignes + sont de longueur égale, nous pouvons trier ces lignes selon cet ordre naturel)
En supposant que votre fichier texte ne contient que des données, placez le curseur de texte (la ligne verticale) à la toute première position du fichier. Ensuite, dans le Edit
menu, sélectionnez Column Editor...
( Alt+ C). Choisissez "Nombre à insérer" et commencez par 1, augmentez de 1 et incluez des zéros non significatifs. Notez que cela conservera l'ordre d'origine lors du tri de la chaîne la plus courte à la chaîne la plus longue. Inversez d'abord toutes les lignes si vous souhaitez trier du plus long au plus court.
1Lorem
2ipsum
3dolor
4sit
5amet
6consectetur
7adipisicing
Étape 2. Remplissez toutes les lignes avec des espaces de début.
Placez le curseur de texte (la ligne verticale) à la toute première position du fichier. Puis dans le Edit
menu sélectionnezColumn Editor...
( Alt+ C). Insérez suffisamment d'espaces pour que la ligne de données la plus courte soit complétée jusqu'à la longueur de la ligne de données la plus longue. Si votre ligne la plus courte comporte 4 caractères et votre plus longue 44, assurez-vous d'insérer au moins 40 espaces.
__________1Lorem
__________2ipsum
__________3dolor
__________4sit
__________5amet
__________6consectetur
__________7adipisicing
Étape 3. Coupez les lignes à une longueur uniforme.
Utilisez la recherche / remplacement d'expressions régulières suivante (Ctrl + H) suivante pour faire correspondre les caractères de droite égalant ou dépassant la longueur de votre ligne de données la plus longue.
^.*(.{50})$
Remplacer tout par $1
. Cela supprimera tout sauf les 50 caractères les plus à droite de chaque ligne. Si vos données sont plus longues (ou courtes) que 50, ajustez le {50}
dans l'expression régulière.
(Note ajoutée par barlop - l'idée ici est que les lignes les plus courtes ont le plus d'espaces au début )
_______1Lorem
_______2ipsum
_______3dolor
_________4sit
________5amet
_6consectetur
_7adipisicing
Étape 4. Triez les lignes.
Sélectionnez tout le texte ( Ctrl+ A). Via le menu TextFX, allez à Text FX > TextFX Tools > Sort lines case sensitive (at column)
. Vos données doivent maintenant être classées par ordre de longueur, du plus court au plus long. Si vous souhaitez les Text FX > TextFX Tools > + Sort ascending
classer du plus long au plus court, décochez l' option avant de trier. Notez également comment les numéros de ligne sont inversés.
_________4sit
________5amet
_______1Lorem
_______2ipsum
_______3dolor
_6consectetur
_7adipisicing
Étape 5. Supprimez les espaces de tête.
Utilisez une autre recherche / remplacement d'expression régulière ( Ctrl+ H) pour faire correspondre les espaces de tête.
^ *\d{4}
C'est un espace entre le curseur et l'astérisque. Remplacez tout par rien. Cela supprimera tous les espaces de tête et les numéros de ligne insérés, si vous aviez des numéros de ligne à 4 chiffres. Remplacez le {4}
par le nombre correct de chiffres dans vos numéros de ligne.
sit
amet
Lorem
ipsum
dolor
consectetur
adipisicing
MACRO
J'ai enregistré les étapes ci-dessus en utilisant la fonction macro de Notepad ++, et cela ne fonctionne pas. Je ne sais pas quelle étape échoue, mais je n'ai pas diagnostiqué pourquoi. Vous pourriez probablement utiliser AutoHotKey pour automatiser cela si vous le faites à plusieurs reprises.