web-dev-qa-db-fra.com

Supprimer les lignes en double dans Notepad ++

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

564
UGEEN

Notepad ++ peut le faire, à condition que vous souhaitiez trier par ligne et supprimer les lignes en double en même temps.

Vous aurez besoin du plugin TextFX. Auparavant, cela était inclus dans les anciennes versions de Notepad ++, mais si vous avez une version plus récente, vous pouvez l’ajouter à partir du 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 requis apparaissent maintenant dans le menu sous: TextFX -> TextFX Tools.

Assurez-vous que "trier uniquement les sorties uniques ..." est coché. Ensuite, sélectionnez un bloc de texte (Ctrl+A sélectionner le document entier). Enfin, cliquez sur "trier les lignes sensibles à la casse" ou "trier les lignes sensibles à la casse"

menu layout in n++

748
Colin Pickard

Depuis Notepad ++ Version 6 vous pouvez utiliser cette expression rationnelle dans le dialogue de recherche et remplacement:

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

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

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

Vous devez cocher les options "Expression régulière" et ". Correspond à nouvelle ligne":

Notepad++ Replace dialogue

  • ^ correspond au début de la ligne.

  • (.*?) correspond à tous les caractères 0 fois ou plus, mais aussi peu que possible (cela correspond exactement à la ligne, cela est nécessaire en raison de l'option ". Correspond à la nouvelle ligne"). La ligne correspondante est stockée, en raison des crochets autour et accessible à l'aide de \1

  • $ correspond à la fin de la ligne.

  • \s+?^ cette partie correspond à tous les caractères d'espacement (nouvelles lignes!) Jusqu'au début de la ligne suivante ==> Ceci supprime les nouvelles lignes après la ligne de correspondance, de sorte qu'aucune ligne vide ne se trouve après le remplacement.

  • (?=.*^\1$) il s'agit d'une affirmation positive d'anticipation. Ceci est la partie importante de cette expression rationnelle, une ligne est uniquement mise en correspondance (et supprimée), quand il y a exactement la même ligne qui suit ailleurs dans le fichier.

576
stema

si les rangées se suivent immédiatement, vous pouvez utiliser un remplacement de regex

Motif de recherche: ^(.*\r?\n)(\1)+

Remplacer par: \1

87
Grant Peters

Notepad ++

-> Remplacer la fenêtre

Assurez-vous que dans le mode de recherche

vous avez sélectionné le bouton radio Expression régulière

Trouver quoi:

^ (. *) (\ r?\n\1) + $

remplacer par:

1 $

avant:

et on y pense

et on y pense

une seule ligne

Est-ce possible de

Est-ce possible de

après:

et on y pense

une seule ligne

Est-ce possible de

33
blueberry0xff

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

$ cat yourfile | sort | uniq > yourfile_nodups

Puis rouvrez le fichier dans Notepad ++.

28
Pablo Santa Cruz

Les dernières versions de Notepad ++ n'incluent apparemment pas 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é à l'aide du gestionnaire de plugins.

A) Moyen facile (comme décrit ici ).

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

B) Manière plus impliquée, si une autre version est nécessaire ou si la méthode simple ne fonctionne pas.

  1. Téléchargez le plugin de 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 Notepad ++, tel que:
    C:\Program Files\Notepad ++\plugins

  4. Démarrer Notepad ++, et TextFX sera l’un des éléments du menu Fichier (comme indiqué dans la réponse 1 ci-dessus de Colin Pickard)

Après avoir installé le plug-in TextFX, suivez les instructions de la réponse n ° 1 pour trier et supprimer les doublons.

En outre, envisagez de configurer un raccourci clavier avec Paramètres> Mappeur de raccourci si vous utilisez fréquemment cette commande ou souhaitez répliquer un raccourci clavier, tel que F9 dans TextPad. pour le tri.

17
eeasterly

Vous aurez peut-être besoin d'un plugin pour le faire. Vous pouvez essayer la ligne de commande cc.ddl (supprimer les lignes en double) de ConyEdit . C'est un plugin inter-éditeur pour les éditeurs de texte, y compris Notepad ++.

ConyEdit tournant en arrière-plan, suivez les étapes ci-dessous:

  1. entrez la ligne de commande cc.ddl à la fin du texte.
  2. copier le texte et la ligne de commande.
  3. coller, alors vous verrez ce que vous voulez.

Exemple
enter image description here

7
Donald

Aucun n'a fonctionné pour moi.

Une solution est:

Remplacer

^(.*)\s+(\r?\n\1\s+)+$

avec

\1
5

Recherche de l'expression régulière: \b(\w+)\b([\w\W]*)\b\1\b

Remplacez-le par: $1$2

Appuyez sur le bouton Remplacer jusqu'à ce qu'il n'y ait plus de correspondance pour l'expression régulière dans votre fichier.

5
Hesham Eraqi

Le gestionnaire de plug-ins est actuellement indisponible (ne vient pas avec la distribution) pour Notepad ++, vous devez l'installer manuellement ( https://github.com/bruderstein/nppPluginManager/releases ) et même si vous le faites, beaucoup de plugins ne sont plus disponibles (pas de plugins TextFX).

Peut-être existe-t-il un autre plugin contenant les fonctionnalités requises. Autre que cela, la seule façon de le faire dans NotePad ++ est d’utiliser des expressions rationnelles spéciales , puis de les remplacer (CTRL + F = -> Remplacer l'onglet).

Bien que de nombreuses fonctionnalités soient disponibles via l’option de menu Éditer (rognage, suppression des lignes vides, tri, conversion en EOL), il n’existe aucune opération "unique".

Si vous avez Windows 10, vous pouvez activer Bash (tapez simplement Ubuntu dans Microsoft Store et suivez les instructions de la description pour l'installer) et utilisez cat your_file.txt | sort | uniq > your_file_edited.txt. Bien sûr, vous devez être dans le même répertoire de travail que "votre_fichier.txt" ou vous y référer via son chemin.

2
Patronaut