Как изменить порядок столбцов в Notepad ++?

8

Я пытаюсь изменить положение каждой строки в файле .txt следующим образом ниже. Однако я понятия не имею, как это сделать. Это возможно с Notepad ++?

От
apple|apple123@aol.com|orange
celery|celery@aol.com|cabbage
sandwich|sandwich@aol.com|turkey

К
яблоку…
апельсин… apple123@aol.com celery | cabbage|celery@aol.com
sandwich|turkey|sandwich@aol.com

Lucyfer
источник
Я только что нашел это, чего раньше даже не знал, но выглядит очень полезным: редактирование столбцов в Notepad ++ с плагином
TextFX
Я бы не назвал это «репозиционными линиями».
Гонки легкости на орбите

Ответы:

15

Изменение порядка столбцов в текстовом файле

Да, это возможно в рамках vanilla Notepad++, хотя, как уже было отмечено, существуют также плагины, которые будут это делать. Лучшим (более надежным) подходом может быть использование некоторых инструментов обработки текста из командной строки, но если вам нужно быстрое и грязное решение, вы можете найти его ниже:

Предполагая, что ваш точный ввод ( col1|col2|col3, разделитель трубы, без трубы col2):

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

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

работает для меня здесь Notepad++, построен в январе 2015 года. Несколько грубо, но это работает.

Объяснение:

.* - соответствует любому символу (кроме новой строки), от нуля до неограниченного времени

.*?- соответствует любому символу (кроме новой строки), как указано выше, не жадным образом (т.е. соответствует как можно меньше )

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

\|- \избегает pipe ( |), чтобы соответствовать ему буквально

\1|\3|\2- вывести первую группу соответствия, трубу, третью группу соответствия, трубу, вторую группу соответствия

bertieb
источник
Мое удовольствие, я рад, что это помогло вам, и надеюсь, что это поможет другим :-) В этом нет необходимости, но вы также можете щелкнуть галочку, чтобы принять ответ, если это решит вашу проблему - вы можете не делать этого или ждать дополнительных лучших ответов тоже!
бертиб
Разве вам не нужно делать .*не жадных, т. Е. .*?Избегать большого возврата?
Бывший Умбрис
@ExUmbris: обычно оптимизация начинается, когда скорость кажется неадекватной
nperson325681
OTOH сознательно писать неоптимальный запрос ради того, чтобы не писать ?символ, кажется глупым.
Гонки легкости на орбите
1
(.*?)|(.*?)|(.*)работает для меня.
Shaz