686 votes

Suppression des lignes en double dans Notepad++

Est-il possible de supprimer les lignes en double dans Notepad++, ne laissant qu'une seule occurrence d'une ligne ?

798voto

stema Points 36113

Depuis la version 6 de Notepad++, vous pouvez utiliser cette regex dans la fenêtre de recherche et de remplacement :

^(.*?)$\s+?^(?=.*^\1$)

et remplacez par rien. Cela laisse de toutes les lignes en double la dernière occurrence dans le fichier.

Aucun tri n'est nécessaire et les lignes en double peuvent être n'importe où dans le fichier !

Vous devez cocher les options "Expression régulière" et ". correspond à un saut de ligne" :

Fenêtre de remplacement de Notepad++

  • ^ correspond au début de la ligne.

  • (.*?) correspond à n'importe quels caractères 0 ou plusieurs fois, mais aussi peu que possible (Il correspond exactement à une ligne, cela est nécessaire en raison de l'option ". correspond à un saut de ligne"). La ligne correspondante est stockée, en raison des parenthèses autour et accessible en utilisant \1

  • $ correspond à la fin de la ligne.

  • \s+?^ cette partie correspond à tous les caractères d'espacement (sauts de ligne !) jusqu'au début de la prochaine ligne ==> Cela supprime les sauts de ligne après la ligne correspondante, de sorte qu'il n'y a pas de ligne vide après le remplacement.

  • (?=.*^\1$) c'est une assertion de recherche en avant. C'est la partie importante de cette regex, une ligne n'est correspondue (et supprimée), que lorsqu'il y a exactement la même ligne qui suit quelque part ailleurs dans le fichier.

1 votes

Celui-ci est en effet meilleur que l'autre regex. Pas besoin de plusieurs passes pour éliminer tous les doublons.

14 votes

Oh, celui-ci est génial, il supprime même les lignes vides, je le macroise en ce moment même :)

1 votes

Génial d'apprendre. Explication précise aussi! Merci à la personne qui a posé la question et à celle qui y a répondu!

793voto

Colin Pickard Points 23922

Notepad++ avec le plugin TextFX peut le faire, à condition que vous souhaitiez trier par ligne et supprimer les lignes dupliquées en même temps.

Pour installer TextFX dans la dernière version de Notepad++, vous devez le télécharger à partir d'ici : https://sourceforge.net/projects/npp-plugins/files/TextFX

Le plugin TextFX était inclus dans les anciennes versions de Notepad++, ou il était possible de l'ajouter depuis le menu en allant à Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install. Dans certains cas, il peut également être appelé TextFX Characters, mais c'est la même chose.

Les cases à cocher et les boutons nécessaires apparaîtront maintenant dans le menu sous : TextFX -> TextFX Tools.

Assurez-vous que "sort outputs only unique..." est coché. Ensuite, sélectionnez un bloc de texte (Ctrl+A pour sélectionner l'ensemble du document). Enfin, cliquez sur "sort lines case sensitive" ou "sort lines case insensitive"

menu layout in n++

39 votes

Plugin incroyablement puissant, malgré son "âge". J'espère qu'ils ne le retireront JAMAIS de l'offre de plugins standard de NPP. Le gars qui a pensé à toutes les fonctionnalités de ce plug-in était un peu un "visionnaire".

0 votes

Notez que cette méthode ne donne aucun avertissement si le fichier est en lecture seule. Mon fichier était quand même trié, donc il semblait que l'outil avait fonctionné, jusqu'à ce que je repère un doublon. Plutôt frustrant jusqu'à ce que j'essaie la méthode de recherche et de remplacement de @stema, qui m'a averti.

8 votes

Plus puissant que excel.

109voto

Grant Peters Points 3718

Si les lignes se suivent immédiatement, vous pouvez utiliser un remplacement regex :

Modèle de recherche : ^(.*\r?\n)(\1)+

Remplacer par : \1

1 votes

Peut-être que d'autres ont eu de la chance avec cela, mais pour moi ^(.*\n)\1 donne comme résultat "Impossible de trouver le texte"

4 votes

@b1naryatr0phy assurez-vous d'avoir défini le "Mode de recherche" sur "Expression régulière", j'ai également mis à jour le motif pour qu'il puisse gérer les fins de lignes de style Windows

3 votes

Notepad++ a un moteur regex léger, il ne permet pas de fonctions avancées, même pas le "? ou \r\n" car il ne fonctionne que sur une seule ligne et vous utilisez $ pour les caractères \r\n.

39voto

Pablo Santa Cruz Points 73944

Si vous ne vous souciez pas de l'ordre des lignes (ce que je ne pense pas que vous le fassiez), vous pouvez utiliser une boîte Linux/FreeBSD/Mac OS X/Cygwin et faire :

$ cat votre_fichier | sort | uniq > votre_fichier_sans_doublons

Ensuite, ouvrez à nouveau le fichier dans Notepad++.

4 votes

Ne fonctionne pas sous Windows 7. 'cat' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de lot.

2 votes

@Iain Elder : cat est un utilitaire standard Unix, c'est pourquoi cette réponse spécifie qu'il fonctionne sous Linux, FreeBSD et MacOSX. La réponse suggère également Cygwyn : Il s'agit d'un programme Windows qui vous donne une interface de style Unix, avec lequel vous obtenez également cat. En résumé (trop tard !) : Win 7 a besoin de Cygwin pour cela.

16 votes

Dans Windows, vous avez PowerShell : cat votreFichier | sort -Unique

18voto

eeasterly Points 336

Les versions récentes de Notepad++ ne semblent pas inclure du tout le plugin TextFX. Pour utiliser le plugin pour trier/éliminer les doublons, le plugin doit être soit téléchargé et installé (plus complexe) soit ajouté en utilisant le gestionnaire de plugins.

A) Facile (comme décrit ici).

Plugins -> Gestionnaire de plugins -> Afficher le gestionnaire de plugins -> Onglet disponible -> Caractères TextFX -> Installer

B) Plus compliqué, si une autre version est nécessaire ou si la méthode facile ne fonctionne pas.

  1. Téléchargez le plugin depuis SourceForge :

    http://downloads.sourceforge.net/project/npp-plugins/TextFX/TextFX%20v0.26/TextFX.v0.26.unicode.bin.zip

  2. Ouvrez le fichier zip et extrayez NppTextFX.dll

  3. Placez NppTextFX.dll dans le répertoire des plugins de Notepad++, par exemple :
    C:\Program Files\Notepad++\plugins

  4. Démarrez Notepad++, et TextFX sera l'une des options du menu fichier (comme vu dans la réponse #1 ci-dessus par Colin Pickard)

Après avoir installé le plugin TextFX, suivez les instructions de la réponse #1 pour trier et supprimer les doublons.

De plus, envisagez de configurer un raccourci clavier en utilisant Paramètres > Mapper de raccourcis si vous utilisez cette commande fréquemment ou souhaitez reproduire un raccourci clavier, comme F9 dans TextPad pour le tri.

0 votes

Dans Notepad++ 7.6, le plug-in devrait être ajouté à C:\Utilisateurs\\AppData\Local\Notepad++\plugins\NppText‌​FX . Mis à part cela, cela fonctionne toujours bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X