Supposons que vous ayez le texte suivant:
abc
123
abc
456
789
abc
abc
Je veux supprimer toutes les lignes "abc" et en garder juste une. Peu importe le tri. Le résultat devrait être comme ceci:
abc
123
456
789
Supposons que vous ayez le texte suivant:
abc
123
abc
456
789
abc
abc
Je veux supprimer toutes les lignes "abc" et en garder juste une. Peu importe le tri. Le résultat devrait être comme ceci:
abc
123
456
789
Triez les lignes par ordre alphabétique, si ce n'est pas déjà le cas, et suivez ces étapes :
(basé sur cette question connexe : <a href="https://stackoverflow.com/q/1573361/3258851">Comment puis-je trouver et supprimer des lignes en double d'un fichier en utilisant des expressions régulières ?</a>)
Ctrl+F
Activer le "Mode de remplacement"
Activer "Utiliser une expression régulière" (l'icône avec le symbole *`.`**)
Dans le champ de recherche, tapez ^(.*)(\n\1)+$
Dans le champ "remplacer par", tapez $1
Dans ce cas, recourez à une solution en dehors de VS Code (voir ici), ou - si votre document n'est pas très grand et que l'utilisation répétée du bouton Remplacer tout ne vous dérange pas - suivez les étapes précédentes, mais dans les étapes 4 et 5, saisissez ceci :
(basé sur <a href="https://stackoverflow.com/q/48722064/3258851">Supprimer des lignes en double spécifiques sans trier</a>)
Attention : Blocs pour les fichiers avec trop de lignes (1000+) ; peut causer le plantage de VS Code ; peut introduire des lignes vides dans certains cas.
recherche : ((^[^\S$]*?(?=\S)(?:.*)+$)[\S\s]*?)^\2$(?:\n)?
remplacer par : $1
puis cliquez sur le bouton "Remplacer tout" autant de fois qu'il y a de doublons.
Vous saurez que c'est suffisant lorsque le nombre de lignes cesse de diminuer lorsque vous cliquez sur le bouton. Naviguez jusqu'à la dernière ligne du document pour surveiller cela.
((^[^\S\r\n]*?(?=\S)(?:.*)+$)[\S\s]*?)^\2$(?:\r?\n)?
a fait planter mon vscode.... J'ai fait une recherche dans un fichier de 229 lignes. :(
@Hickory420 J'ai testé sur ma machine avec 1000 lignes (20 caractères de long, aléatoires) et je n'ai pas eu de crash, mais en effet un thread se bloque avec une charge CPU de 100% pendant quelques secondes à chaque passage. Oui, c'est à peine pratique pour les gros fichiers.
Merci pour cela. Pouvez-vous expliquer s'il vous plaît l'expression régulière ^(.*)(\n\1)+$
. Après avoir supprimé les lignes en double, je veux examiner toutes les lignes avec la première colonne en double dans le csv et je veux modifier l'expression régulière.
Dès Visual Studio Code 1.62 (sorti en octobre 2021), il y a une nouvelle commande Supprimer les lignes en double. Elle supprime les lignes en double dans une sélection ou dans tout le document.
Il n'y a pas de raccourci clavier par défaut pour cette commande. Si vous souhaitez en définir un, le nom de la commande est editor.action.removeDuplicateLines
.
Voici une extension très intéressante : Transformer
Fonctionnalités :
Lignes uniques comme nouveau document
Lignes uniques
Aligner CSV
Aligner sur le curseur
Compactage CSV
Copier dans un nouveau document
Compter les lignes en double comme nouveau document
Encoder / Décoder
Filtrer les lignes comme nouveau document
Filtrer les lignes
Joindre les lignes
Chaîne JSON en texte
Lignes en tant que tableau de chaînes JSON
Normaliser les marques diacritiques
Mélanger les lignes
Mélanger les sélections
Inverser les lignes
Inverser les sélections
Faire pivoter les sélections vers l'arrière
Faire pivoter les sélections vers l'avant
Sélectionner les points forts
Sélectionner les lignes
Sélection en tant que chaîne JSON
Trier les lignes par longueur
Trier les lignes
Trier les sélections
Séparer les lignes après
Séparer les lignes avant
Séparer les lignes
Élaguer les lignes
Élaguer les sélections
Lignes uniques
Supprime les lignes en double du document Fonctionne sur la sélection ou le bloc actuel s'il n'y a pas de sélection
Lignes uniques comme nouveau document
Les lignes uniques sont ouvertes dans un nouveau document Fonctionne sur la sélection ou le bloc actuel s'il n'y a pas de sélection
Je n'ai pas beaucoup joué avec autre chose que la commande "Lignes uniques", mais cela semble bien fait (y compris en essayant un enregistreur de macro !).
@ArenCambre Je vois Supprimer les lignes en double
: editor.action.removeDuplicateLines
dans les raccourcis clavier. Ils ont oublié de faire ce qu'ils doivent faire pour l'ajouter dans la palette de commandes ou une régression mais c'est là dans les raccourcis clavier et peut être transformé en un raccourci clavier comme d'habitude. Avez-vous vérifié les raccourcis clavier?
Je viens de rencontrer le même problème et j'ai trouvé le package "Trier les lignes" de Visual Studio Code. Consultez le marché de Visual Studio Code pour plus de détails (par exemple, Trier les lignes).
Ce package propose l'option "Trier les lignes (uniques)", qui a résolu mon problème. Veillez à supprimer les espaces vides en début/fin de lignes. Ils influencent la considération des lignes comme étant uniques ou non.
Il semble que l'extension n'ait plus la capacité de supprimer les entrées en double. En combinant cela avec la réponse de @Marc-2377 semble faire l'affaire pour moi.
Essayez de trouver et de remplacer avec une expression régulière.
Find: ^(.+)((?:\r?\n.*)*)(?:\r?\n\1)$
Replace: $1$2
Il est possible d'introduire une certaine variance dans le premier groupe.
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.
0 votes
Younes, tu ferais mieux de revenir et d'accepter la réponse de @Marc.2377. C'est génial.