Jak ponownie zamówić kolumny rozdzielane potokami w Notepad ++?

8

Próbuję zmienić pozycję każdej linii w pliku .txt w następujący sposób poniżej. Nie mam jednak pojęcia, jak to zrobić. Czy jest to możliwe w Notepad ++?

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

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

Lucyfer
źródło
Właśnie to znalazłem, o czym nawet nie wiedziałem, ale wygląda na bardzo przydatne: Edytuj kolumny w Notepad ++ za pomocą wtyczki TextFX
MC10
Nie nazwałbym tego „liniami zmiany pozycji”.
Wyścigi lekkości na orbicie

Odpowiedzi:

15

Ponowne porządkowanie kolumn w pliku tekstowym

Tak, jest to możliwe w wanilii Notepad++, choć, jak wspomniano, istnieją również wtyczki, które to zrobią. Lepszym (bardziej niezawodnym) podejściem może być użycie niektórych narzędzi do przetwarzania tekstu z wiersza poleceń, ale jeśli potrzebujesz szybkiego i brudnego rozwiązania, możesz to znaleźć poniżej:

Zakładając dokładne dane wejściowe ( col1|col2|col3, ogranicznik rury, brak wejścia col2):

Znajdź :(.*?)\|(.*?)\|(.*)

Zamień :\1|\3|\2

działa dla mnie tutaj Notepad++, zbudowany w styczniu 2015 r. Trochę brutalny, ale działa.

Wyjaśnienie:

.* - dopasowuje dowolny znak (oprócz nowej linii), od zera do nieograniczonej liczby razy

.*?- dopasowuje jakikolwiek znak (oprócz nowej linii) jak wyżej, w sposób nie chciwy (tzn. dopasowuje jak najmniej )

(.*)- wsporniki ślizgowe oznaczają grupę przechwytywania grupę z góry (do wykorzystania w wymienić jako przykład \1, \2, \3etc.)

\|- \ucieka potoku ( |), aby dosłownie go dopasować

\1|\3|\2- wydrukuj pierwszą pasującą grupę, potok, trzecią pasującą grupę, potok, drugą pasującą grupę

bertieb
źródło
Cała przyjemność po mojej stronie, cieszę się, że to pomogło i mam nadzieję, że pomoże innym :-) Nie jest to konieczne, ale możesz także kliknąć znacznik wyboru, aby zaakceptować odpowiedź, jeśli rozwiąże to twój problem - możesz tego nie robić, lub czekać też na dodatkowe lepsze odpowiedzi!
bertieb
Czy nie musisz sprawiać, by .*nie był chciwy, tj. .*?Aby uniknąć wielu cofnięć?
Ex Umbris,
@ExUmbris: zazwyczaj optymalizacja rozpoczyna się, gdy prędkość wydaje się nieodpowiednia
souser12345
OTOH celowe pisanie suboptymalnego zapytania ze względu na brak pisania ?znaku wydaje się głupie.
Wyścigi lekkości na orbicie
1
(.*?)|(.*?)|(.*)pracuje dla mnie.
Shaz