web-dev-qa-db-fra.com

Existe-t-il un moyen d'extraire des lignes en double dans du texte sublime?

J'ai besoin d'effectuer 2 opérations dans le texte sublime: extraire des lignes uniques et extraire des lignes de duplication. Par exemple pour l'entrée

a
b
a

Extraire des doublons devrait aboutir à:

a

et extraire unique devrait aboutir à:

b

Y a-t-il une opération intégrée ou un plugin pour faire cela?

9
Poma

Vous pouvez trouver facilement des lignes en double en exécutant un Sort Lines Ensuite, recherchez cette regex qui utilise des marqueurs de lignes de ligne ^ et $ et la référence arrière \1.

^(.+)$\n^\1$

Suivez cela avec une trouvaille tout, copiez-vous, coller dans un nouvel onglet, lignes permutées | Unique et vous les avez extraites.

13
twamley

Malheureusement, je n'ai pas accès au texte sublime pour le moment, je ne suis donc pas capable de tester cela, mais je crois que quelque chose comme ce qui suit pourrait fonctionner pour vous:

  1. Triez les lignes via le Edit -> Sort Lines commande
  2. Installez le plugin - Mettez des duplicats et utilisez-le pour mettre en évidence toutes les lignes en double.
  3. Couper les lignes en surbrillance dans le presse-papiers et les coller dans un nouveau fichier
  4. Les lignes qui restent dans le fichier d'origine sont votre extrait unique lignes
  5. Dans le nouveau fichier, sélectionnez tout le texte et supprimez des lignes en double via le Edit -> Permute Lines -> Unique commande
  6. Les lignes qui restent dans le nouveau fichier sont vos extrayez des doublons lignes

Je ne suis pas tout à fait sûr que l'étape 1 est réellement nécessaire, mais je l'ai inclus au cas où.

2
MJH

Avait le même problème (montre-moi les DuPes) ... Je n'ai pas trouvé de réponse facile à base de sublime et est tombé à l'aide des commandes UNIX (mon fichier avait les données que je voulais trouver les doubles duplicats de colonnes 11-56):

cut -c 11-56 myfile.dat | sort | uniq -d

Posté ici comme un fyi aux autres.

0
Tom Hundt

Légèrement modifié @MJH Répondez ci-dessus pour obtenir des lignes dupliquées avec sublime 3 et diffamerge, sans utiliser Highlight Duplicates brancher.

  1. Trier les lignes via Sublime 3 Edit -> Sort Lines commande
  2. Enregistrer le fichier d'origine comme trié_orig.txt
  3. Sélectionnez tout le texte et supprimez des lignes en double via Sublime 3 Edit -> Permute Lines -> Unique commande
  4. Enregistrer le fichier modifié comme no_dup_sorted.txt
  5. Démarrez DIFF avec un outil différent avec trié_orig.txt et no_dup_sorted.txt fichiers.
  6. Utilisation Export -> File Diffs Dans Diffrigation Pour obtenir une liste de doublons dans le presse-papiers ou enregistrer dans un autre fichier.
0
Alex M.