Utilisation de Notepad++ v6.6.8 avec TextFX.
Comment trier les lignes dans l'ordre numérique plutôt qu'alphanumérique ?
C'est-à-dire que je veux que les lignes se trient comme suit :
1
2
10
11
15
20
pas :
1
10
11
15
2
20
Utilisation de Notepad++ v6.6.8 avec TextFX.
Comment trier les lignes dans l'ordre numérique plutôt qu'alphanumérique ?
C'est-à-dire que je veux que les lignes se trient comme suit :
1
2
10
11
15
20
pas :
1
10
11
15
2
20
C'est maintenant facile à réaliser (du moins dans Notepad++ 7.5.9) :
Utilisez l'élément de menu : Éditer -> Opérations de ligne -> Trier les lignes en tant qu'entiers croissants
(Remarque : si vous ne sélectionnez aucun texte, il triera le fichier entier, et si vous sélectionnez du texte, il limitera le tri au texte sélectionné.)
Je ne sais pas à quoi ressemble votre fichier, mais j'utiliserais des expressions régulières pour ajouter des espaces ou des zéros avant chaque nombre afin de les rendre de la même longueur (par exemple, 2 devient 002). Ensuite, ils se classeront correctement et vous pourrez utiliser un autre remplacement pour supprimer les espaces/zéros initiaux par la suite.
Voici les étapes (fonctionne pour des nombres jusqu'à 10 caractères)
Find: ^
Replace: 0000000000
Find: \d*(\d{10})
Replace: \1
Trier
Find: ^0*
Replace:
Cela fonctionne en ajoutant 10 zéros avant le nombre, même si c'est probablement trop. Le deuxième remplacement prend ensuite les 10 derniers chiffres du nombre pour ramener tout à la même longueur, vous donnant des nombres comme 0000000839, 0000000003, etc. Ceux-ci se classeront dans l'ordre désiré. Une fois triés, la dernière expression supprimera tous les zéros initiaux et vous retrouverez vos chiffres originaux.
Si vous avez besoin de nombres plus longs, ajoutez simplement plus de zéros au premier remplacement, et augmentez le 10 dans le deuxième remplacement en conséquence. Si vous devez le faire plus souvent, vous pourriez enregistrer une macro avec ces étapes.
Je n'ai pas essayé cela mais il existe un plugin qui prétend le faire (tant que les lignes COMMENCENT par un numéro). Voici le lien : http://www.scout-soft.com/linesort/
Mise à jour Ok, ce plugin semble être parti pour le moment. Peut-être qu'il ne fonctionne pas avec les nouvelles versions de NP++. Voici un autre que j'ai vu dans le gestionnaire de plugins, donc il est au moins plus commun : http://william.famille-blum.org/blog/index.php?entry=entry110123-113226
Je viens de l'essayer sur 6.6.9 et c'est un peu maladroit (n'oubliez pas d'appuyer sur le bouton Ajouter dans la boîte de dialogue) mais ça marche parfaitement bien.
Sélectionnez tout et copiez en tant que texte dans Excel ou tout autre programme de tableur, utilisez un tri personnalisé. Chaque ligne doit être collée dans une cellule unique, A1, B1, etc. Il suffit de définir le champ comme numérique et non comme texte. Cela se fait en définissant le format de cellule, ou en utilisant la fonction TEXTE. Collez ensuite dans Notepad++.
Dans le cas plus complexe où l'OP a du texte mélangé avec des chiffres (par exemple, "1 Première ligne," "12 Douzième ligne"), nous pouvons créer une colonne de tri pour organiser la liste. Comme il y a un espace après le chiffre, nous pouvons trouver cet espace pour créer une colonne avec seulement les chiffres en utilisant =GAUCHE(A1;TROUVE(" ";A1;1)). Après avoir appliqué la fonction à toute la colonne, nous pouvons trier les deux colonnes en fonction de l'ordre de la colonne de tri (c'est-à-dire l'ordre numérique) puis copier la première colonne dans le bon ordre. La formule exacte pour extraire le numéro de la ligne dépendra du format de ligne, mais la commande ci-dessus devrait fonctionner avec des modifications mineures pour la plupart des cas, sinon stack exchange a d'autres exemples de formules similaires.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.