Як замовити стовпчики з обмеженими трубами в Notepad ++?


8

Я намагаюся змінити кожен рядок у .txt-файлі наступним чином нижче. Однак я поняття не маю, як це зробити. Чи можливо це за допомогою Notepad ++?

З
яблучного|apple123@aol.com|оранжевий
селера | celery@aol.com|
бутерброд з капусти|sandwich@aol.com|turkey

Для
apple|orange|apple123@aol.com
celery|cabbage|celery@aol.com
sandwich|turkey|sandwich@aol.com


Я щойно знайшов це, про що навіть не знав раніше, але виглядає надзвичайно корисним: редагуйте стовпці в Блокноті ++ за допомогою плагіна TextFX
MC10

Я б не назвав це "перестановкою ліній".
Гонки легкості на орбіті

Відповіді:


15

Переупорядкування стовпців у текстовому файлі

Так, це можливо в межах ванілі Notepad++, хоча, як зазначалося, є також плагіни, які будуть це робити. Кращим (більш надійним) підходом може бути використання деяких інструментів для обробки тексту командного рядка, але якщо вам потрібне швидке і брудне рішення, ви можете знайти це нижче:

Припускаючи точний вхід ( col1|col2|col3, деліметр труби, труба не входить col2):

Знайти :(.*?)\|(.*?)\|(.*)

Замінити :\1|\3|\2

працює для мене тут Notepad++, побудований у січні 2015 року. Дещо брутальний, але це працює.

Пояснення:

.* - відповідає будь-якому символу (крім нового рядка), між нулем і необмеженим часом

.*?- відповідає будь-якому символу (за винятком нового рядка), як зазначено вище, не жадібним чином (тобто відповідає якомога менше )

(.*)- прості дужки означають захоплення групи з вище (для використання в Replace як , наприклад \1, \2, і \3т.д.)

\|- \ухиляється від труби ( |), щоб відповідати їй буквально

\1|\3|\2- друкувати 1-ю групу узгодження, трубу, третю групу узгодження, трубу, другу групу узгодження


Моє задоволення, я радий, що це допомогло вам і сподіваюся, що це допоможе іншим :-) Це не потрібно, але ви також можете натиснути галочку, щоб прийняти відповідь, якщо вона вирішить вашу проблему - ви не бажаєте, або чекати додаткових кращих відповідей теж!
bertieb

Чи не потрібно робити .*не жадібні, тобто, .*?щоб уникнути багато зворотних треків?
Ex Exbrbris

@ExUmbris: зазвичай оптимізація починається, коли швидкість здається недостатньою
nperson325681

OTOH свідомо писати субоптимальний запит заради того, щоб не записати ?символу, здається нерозумним.
Гонки легкості на орбіті

1
(.*?)|(.*?)|(.*)працює для мене.
Шаз
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.