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]
Odpowiedzi:
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ściacol2
):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
,\3
etc.)\|
-\
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ęźródło
.*
nie był chciwy, tj..*?
Aby uniknąć wielu cofnięć??
znaku wydaje się głupie.(.*?)|(.*?)|(.*)
pracuje dla mnie.