Est-il possible de supprimer les lignes en double dans Notepad++, ne laissant qu'une seule occurrence d'une ligne ?
Celui-ci est en effet meilleur que l'autre regex. Pas besoin de plusieurs passes pour éliminer tous les doublons.
Est-il possible de supprimer les lignes en double dans Notepad++, ne laissant qu'une seule occurrence d'une ligne ?
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" :
^
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.
Celui-ci est en effet meilleur que l'autre regex. Pas besoin de plusieurs passes pour éliminer tous les doublons.
Oh, celui-ci est génial, il supprime même les lignes vides, je le macroise en ce moment même :)
Génial d'apprendre. Explication précise aussi! Merci à la personne qui a posé la question et à celle qui y a répondu!
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"
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".
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.
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"
@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
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.
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.
@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.
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.
Téléchargez le plugin depuis SourceForge :
Ouvrez le fichier zip et extrayez NppTextFX.dll
Placez NppTextFX.dll dans le répertoire des plugins de Notepad++, par exemple :
C:\Program Files\Notepad++\plugins
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.
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.