Comment réorganiser les colonnes délimitées par des tuyaux dans Notepad ++?


8

J'essaie de repositionner chaque ligne d'un fichier .txt de la manière suivante ci-dessous. Cependant, je n'ai aucune idée de la façon de procéder. Est-ce possible avec Notepad ++?

De
apple|apple123@aol.com|orange
celery|celery@aol.com|cabbage
sandwich|sandwich@aol.com|turkey

À
apple|orange|apple123@aol.com
celery|cabbage|celery@aol.com
sandwich|turkey|sandwich@aol.com


Je viens de trouver cela, que je ne connaissais même pas auparavant, mais qui semble super utile: Modifier les colonnes dans Notepad ++ avec le plugin
TextFX

Je n'appellerais pas cela des "lignes de repositionnement".
Courses de légèreté en orbite

Réponses:


15

Réorganisation des colonnes dans un fichier texte

Oui, cela est possible dans vanilla Notepad++, mais comme indiqué, il existe également des plugins qui le feront. Une meilleure approche (plus robuste) pourrait être d'utiliser certains outils de traitement de texte en ligne de commande, mais si vous avez besoin d'une solution rapide et sale, vous pouvez la trouver ci-dessous:

En supposant votre entrée exacte ( col1|col2|col3, délimiteur de tuyau, pas de tuyau col2):

Trouver :(.*?)\|(.*?)\|(.*)

Remplacez :\1|\3|\2

travaille pour moi ici Notepad++, construit en janvier 2015. Un peu brutal, mais ça marche.

Explication:

.* - correspond à n'importe quel caractère (sauf la nouvelle ligne), entre zéro et temps illimité

.*?- correspond à n'importe quel caractère (sauf la nouvelle ligne) comme ci-dessus, d'une manière non gourmande (c'est-à-dire correspondre le moins possible )

(.*)- les supports lisses dénotent la capture groupe de ci - dessus (pour une utilisation dans Remplacer comme par exemple \1, \2, \3etc.)

\|- \échappe pipe ( |) pour correspondre littéralement

\1|\3|\2- imprimer le premier groupe correspondant, pipe, troisième groupe correspondant, pipe, deuxième groupe correspondant


Mon plaisir, je suis heureux que cela vous ait aidé et j'espère que cela aidera les autres :-) Ce n'est pas nécessaire, mais vous pouvez également cliquer sur la coche pour accepter une réponse si cela résout votre problème - vous êtes libre de ne pas le faire, ou d'attendre de meilleures réponses supplémentaires aussi!
bertieb

N'avez-vous pas besoin de rendre le .*non gourmand, c'est- .*?à- dire pour éviter beaucoup de retours en arrière?
Ex Umbris

@ExUmbris: généralement l'optimisation commence lorsque la vitesse semble insuffisante
nperson325681

OTOH écrire délibérément une requête sous-optimale pour ne pas écrire un ?caractère semble idiot.
Courses de légèreté en orbite

1
(.*?)|(.*?)|(.*)travaille pour moi.
Shaz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.