Блокнот ++ Слияние 10+ строк в 1 строку

6094
pau13z

Я пытаюсь использовать Notepad ++ для объединения нескольких строк в одну. Проблема, с которой я сталкиваюсь, заключается в том, что при попытке этого кода я получаю такой результат:

Date/Time: Sequence: Event: Category: Priority: Attention: Alert: Visibility: Description: Codes: Type: Location: Logged by: 

Найти: (.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)

Заменить: \1\t\2\t\3\t\4\t\5\t\6\t\7\t\8\t\9\t\10\t\11\t\12\t\13\t

Результат: Date/Time: Sequence: Event: Category: Priority: Attention: Alert: Visibility: Description: Date/Time:0 Date/Time:1 Date/Time:2 Date/Time:3

Может ли кто-нибудь помочь с более простым или коротким путем? Я не могу выделить текст и выбрать «Присоединиться к линиям». В документе есть тысячи таких результатов, и я пытаюсь упорядочить. Это всегда набор из 13.

1
Вы пробовали `TextFX` плагин в Notepad ++, он предоставляет пункт меню` TextFX> TextFX Edit> Unwrap Text`, который делает то, что вам нужно? Также вы могли бы просто заменить `\ r \ n` на` \ t` в режиме расширенного поиска AEonAX 7 лет назад 0

3 ответа на вопрос

3
Gypsy Spellweaver

Вариант 1: замените замену на использование фигурных скобок:

Изменить : исправлена ​​замена строки

\ Г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т

$\t$\t$\t$\t$\t$\t$\t$\t$\t$\t$\t$\t$ 

Вариант 2: Ваша строка соответствия должна включать именованные группы:

(?<a>.+)\r\n(?<b>.+)\r\n(?<c>.+)\r\n(?<d>.+)\r\n(?<e>.+)\r\n(?<f>.+)\r\n(?<g>.+)\r\n(?<h>.+)\r\n(?<i>.+)\r\n(?<j>.+)\r\n(?<k>.+)\r\n(?<l>.+)\r\n(?<m>.+) 

И, измените строку замены, чтобы использовать эти группы:

Изменить : исправлена ​​замена строки

\ Г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г \ т \ г

$+\t$+\t$+\t$+\t$+\t$+\t$+\t$+\t$+\t$+\t$+\t$+\t$+ 

Ваш выбор, хотя вариант 1 - это меньше работы, вариант 2 также может пригодиться.

Новое Примечание : Имена в варианте 2, <a>и не ограничивается одним символа. Это может быть любая строка типа name, которую вы хотите, при условии, что она находится в обычном диапазоне букв, цифр и подчеркиваний. Не уверен, что другие специальные символы, включая пробелы, являются действительными. Избегать их лучше всего на всякий случай.

Привет, цыган, пользуясь вариантом 1, я получил: g g g g g g g g g g g g g И используя вариант 2, я получил: g g g g g g g g g g g g g pau13z 7 лет назад 0
Удалите это, используя вариант 1, ничего не произошло И используя вариант 2, я получил: g g g g g g g g g { i} g g g g pau13z 7 лет назад 0
Виноват. Версии `\ g ` и `\ g ` предназначены для обратных ссылок в самом поиске. Вот исправленные версии: 1) Вместо `\ g ` используйте `$ `. Так что это `$ \ t $ \ t $ \ t $ \ t $ \ t $ \ t $ \ t $ \ т $ \ т $ \ т $ \ т $ \ т $ `. 2) Вместо `\ g ` используйте `$ + `, так что это `$ + \ t $ + \ t $ + \ t $ + \ т $ + \ т $ + \ т $ + \ т $ + \ т $ + \ т $ + \ т $ + \ т $ + \ т $ + `. Обратите внимание, что в обеих версиях перед `$` нет `\`. Для версии 2 строка поиска остается прежней. Кстати, `(? ...` не ограничивается 1 символом. Это может быть `(?... `, например. Gypsy Spellweaver 7 лет назад 0
@ Pau13z. Ответ обновлен с исправленными заменами строк. Простите за это. Gypsy Spellweaver 7 лет назад 0
Легенда! Вариант 1 сработал для меня :) Ура, приятель pau13z 7 лет назад 0
2

Способ 1

Поиск → Заменить ...

  • Найти что: \ r \ n
  • Заменить на: \ t
  • Обернуть: проверено
  • Режим поиска: регулярное выражение

Способ 2

Правка → Пустые операции → EOL в пробел

0
Toto

Если весь набор из 13 строк начинается с Date/Time:, вы можете сделать это. Он заменит все разрывы строк, за которыми не следует Date/Timeтабуляция:

  • Ctrl+H
  • Найти то, что: \R(?!Date/Time:)
  • Заменить: \t
  • UNcheck Match case
  • проверить обернуть
  • проверьте регулярное выражение
  • Replace all

Объяснение:

\R : any kind of linebreak (?! : start negative lookahead, make sure we don't have after Date/Time: : literally ) : end lookahead 

Результат для 3 наборов линий:

Date/Time: Sequence: Event: Category: Priority: Attention: Alert: Visibility: Description: Codes: Type: Location: Logged by: Date/Time: Sequence: Event: Category: Priority: Attention: Alert: Visibility: Description: Codes: Type: Location: Logged by: Date/Time: Sequence: Event: Category: Priority: Attention: Alert: Visibility: Description: Codes: Type: Location: Logged by: 

Похожие вопросы