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|apple123@aol.com|orange
Sellerie | celery@aol.com | kohlsandwich|
sandwich@aol.com | turkey

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


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.