Wie ordne ich durch Pipe getrennte Spalten in Notepad ++ neu an?

8

Ich versuche, jede Zeile in einer TXT-Datei wie folgt neu zu positionieren. Ich habe jedoch keine Ahnung, wie ich vorgehen soll. Ist das mit Notepad ++ möglich?

Von
apple|[email protected]|orange
Sellerie | [email protected] | kohlsandwich|
[email protected] | turkey

An
apple|orange|[email protected]
cellery|cabbage|[email protected]
sandwich|turkey|[email protected]

Lucyfer
quelle
Ich habe gerade das gefunden, was ich vorher noch nicht wusste, aber es sieht super nützlich aus: Bearbeiten Sie Spalten in Notepad ++ mit dem TextFX-Plugin
MC10
Ich würde dies nicht als "Neupositionierung von Linien" bezeichnen.
Leichtigkeitsrennen im Orbit

Antworten:

15

Spalten in einer Textdatei neu anordnen

Ja, dies ist in Vanilla möglich Notepad++, aber wie bereits erwähnt, gibt es auch Plugins, die dies tun. Ein besserer (robusterer) Ansatz könnte darin bestehen, einige Befehlszeilentextverarbeitungstools zu verwenden. Wenn Sie jedoch eine schnelle und schmutzige Lösung benötigen, finden Sie diese unten:

Angenommen, Sie geben Ihre genaue Eingabe ein ( col1|col2|col3Rohrbegrenzer, kein Rohr in col2):

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

Ersetzen :\1|\3|\2

arbeitet für mich hier in Notepad++, gebaut im Januar 2015. Etwas brutal, aber es funktioniert.

Erläuterung:

.* - Entspricht einem beliebigen Zeichen (außer Zeilenumbruch) zwischen null und unbegrenzt oft

.*?- entspricht einem beliebigen Zeichen (außer Zeilenumbruch) wie oben auf nicht gierige Weise (dh entspricht so wenig wie möglich )

(.*)- einfache Klammern bezeichnen Gruppe Einfangen von oben (in Gebrauch zu ersetzen , wie beispielsweise \1, \2, \3usw.)

\|- \entkommt Pipe ( |), um es buchstäblich anzupassen

\1|\3|\2- 1. passende Gruppe, Pipe, dritte passende Gruppe, Pipe, zweite passende Gruppe drucken

Bertieb
quelle
Es ist mir ein Vergnügen, ich bin froh, dass es Ihnen geholfen hat und hoffe, dass es anderen hilft :-) Es ist nicht notwendig, aber Sie können auch auf das Häkchen klicken, um eine Antwort zu akzeptieren, wenn es Ihr Problem löst - es steht Ihnen frei, oder um auf weitere bessere Antworten zu warten!
Bertieb
Müssen Sie das .*nicht gierig machen, dh .*?viel Backtracking vermeiden?
Ex Umbris
@ExUmbris: Normalerweise beginnt die Optimierung, wenn die Geschwindigkeit unzureichend erscheint
nperson325681
OTOH, das absichtlich eine suboptimale Abfrage schreibt, um kein ?Zeichen zu schreiben , scheint dumm zu sein.
Leichtigkeitsrennen im Orbit
1
(.*?)|(.*?)|(.*)funktioniert bei mir.
Shaz