8

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

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

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

1 ответ1

15

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

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

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

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

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

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

Объяснение:

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

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

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

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

\1|\3|\2 - вывести 1-ю подходящую группу, канал, третью подходящую группу, канал, вторую подходящую группу

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .