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|[email protected]|orange
celery|[email protected]|cabbage
sandwich|[email protected]|turkey

À
apple|orange|[email protected]
celery|cabbage|[email protected]
sandwich|turkey|[email protected]

Lucyfer
la source
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

Bertieb
la source
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