Come riordinare le colonne delimitate da pipe in Notepad ++?


8

Sto cercando di riposizionare ogni riga in un file .txt nel modo seguente di seguito. Tuttavia, non ho idea di come procedere. Questo è possibile con Notepad ++?

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

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


Ho appena trovato questo, che non sapevo nemmeno prima, ma sembra super utile: Modifica colonne in Notepad ++ con plugin TextFX
MC10

Non chiamerei questo "riposizionamento delle linee".
Razze di leggerezza in orbita

Risposte:


15

Riordinare le colonne in un file di testo

Sì, questo è possibile in Vanilla Notepad++, anche se, come notato, ci sono anche plugin che lo faranno. Un approccio migliore (più solido) potrebbe essere quello di utilizzare alcuni strumenti di elaborazione del testo da riga di comando, ma se hai bisogno di una soluzione rapida e sporca puoi trovarla qui sotto:

Supponendo che il tuo input esatto ( col1|col2|col3, delimitatore di pipe, nessuna pipe in col2):

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

Sostituisci :\1|\3|\2

funziona per me qui Notepad++, costruito nel gennaio 2015. Un po 'brutale, ma funziona.

Spiegazione:

.* - corrisponde a qualsiasi personaggio (tranne la nuova riga), tra zero e tempi illimitati

.*?- corrisponde a qualsiasi personaggio (eccetto la nuova riga) come sopra, in modo non avido (ovvero abbina il meno possibile )

(.*)- le parentesi quadre indicano il gruppo di acquisizione di cui sopra (da utilizzare in Sostituisci come ad es \1. \2, \3ecc.)

\|- \escape pipe ( |) per abbinarlo letteralmente

\1|\3|\2- Stampa 1 ° gruppo corrispondente, pipe, terzo gruppo corrispondente, pipe, secondo gruppo corrispondente


Piacere, sono felice che ti abbia aiutato e spero che possa aiutare gli altri :-) Non è necessario, ma puoi anche fare clic sul segno di spunta per accettare una risposta se risolve il tuo problema, sei libero di non farlo, oppure aspettare ulteriori risposte anche migliori!
bertieb

Non hai bisogno di fare il .*non avido, vale .*?a dire evitare un sacco di backtracking?
Ex Umbris,

@ExUmbris: di solito l'ottimizzazione inizia quando la velocità sembra inadeguata
nperson325681

OTOH scrivere deliberatamente una query non ottimale per non scrivere un ?personaggio sembra sciocco.
Razze di leggerezza in orbita

1
(.*?)|(.*?)|(.*)per me va bene.
Shaz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.