Вопрос Notepad ++ находит и заменяет строку новой строкой


Рассмотрим сценарий, в котором у вас есть определенная строка, которую вы хотите найти и заменить. Вы хотите заменить его новой строкой, содержащей символ новой строки (или последовательность символов).

abc123 xyz456-blah
fsafd23 xyz456-green
89hjkf23 xyz456-red
afdsa23 xyz456-yellow
abaac123 xyz456-orange

В приведенном выше сценарии я хотел бы найти " xyz" а также заменить пространство с возвратом каретки / новой линией.

Результаты будут выглядеть так:

abc123
xyz456-blah
fsafd23
xyz456-green
89hjkf23
xyz456-red
   ︙

и т.д...

Вопрос: Как вы могли бы достичь этого с помощью Notepad ++? Существуют ли какие-либо другие инструменты, которые вы предложили бы легко выполнить эту команду?


194
2017-09-02 17:57


происхождения




ответы:


Notepad ++ будет прекрасно.

Строка поиска:

 хуг
 Обратите внимание на пространство перед xyz,

Заменить строку:

\ Г \ nxyz

Вам также необходимо установить «Режим поиска» в "Extended" (нижняя левая группа в поле замещать диалог), так что Notepad ++ чтит коды эвакуации.


Некоторые предпосылки: «\ r \ n» - это код выхода для возврата каретки, стандарт для новых строк в Windows. В системах Unix-стиля просто используется \ n (новая строка). Большинство IDE, включая Notepad ++, будут понимать оба стиля и отображать их каждый с новыми строками, но основные утилиты Windows не понимают \ n как эквивалентные \ r \ n, поэтому последнее обычно является наиболее подходящим, если файл предназначен для используется в средах Windows.


261
2017-09-02 18:02



\ r \ n = синтаксис новой строки Windows. Однако для всего, кроме простого старого блокнота, он примет только \ n для новой строки (что также более условно). - Macha
Ваша фраза «более условная» вводит в заблуждение. «\ r \ n» является стандартом для Windows. Просто многие редакторы и IDE обнаруживают стандартную строку Unix / Linux, заканчивающуюся «\ n», и отображают документ соответствующим образом. В «\ n» ничего нет, что делает его более условным. - Brian Lacy
Честно говоря, версия Win / DOS имеет больше смысла для меня. «\ r» означает «Возврат каретки» или «Возврат каретки / курсора к началу строки» и «\ n» означает «Переместить карету / курсор вперед в одну строку». Конечно, Unix пришел 20 лет назад, поэтому я предполагаю, что в этом смысле Microsoft нарушила стандарт. - Brian Lacy
это не будет работать, если вы не установите режим поиска, как указано в другом ответе: superuser.com/questions/34451/... - codeulike
Если вы пытаетесь заменить буквальную строку «\ r \ n» на фактическую новую строку, мне пришлось сделать следующее: установить режим поиска в обычном режиме, найти / заменить \ r \ n с помощью ***. Затем установите режим поиска в Extended, find / replace *** с помощью \ r \ n. - goku_da_master


В Notepad ++ это очень просто ...

  • Найти: xyz
  • Заменить на: \ n


  • Режим поиска: расширенный (\ n, \ t и т. Д.)

Хитрость заключается в том, чтобы установить режим поиска.


59
2017-09-02 18:01



Этот ответ сработал для меня, но не согласился. Вер. 5.8.6 - bdwakefield
Да же здесь принятый ответ не уточнил использование расширенного режима. - Andy
Режим поиска является ключевым, спасибо за публикацию. - Jrod
Почему нет \r\n (вместо \n)? - Peter Mortensen


В диалоговом окне «Заменить» убедитесь, что в режиме поиска у вас выбран «расширенный». Затем введите в поле поиска «xyz» и замените на «\ n».


5
2017-09-02 18:01



Почему нет \r\n (вместо \n)? - Peter Mortensen


Я немного обманываю, когда символы S & Ring, которые я не могу ввести непосредственно в текстовые поля (например, вкладки и новые строки). Найдите где-нибудь в документе, который уже имеет этот символ, затем скопируйте его и вставьте в поле replace.

Поэтому в вашем примере начинайте с самого начала одной строки, нажмите, перетащите до самого конца предыдущей строки, скопируйте ее и вставьте в диалог «Заменить».


4
2017-09-02 17:59





Для Notepad ++ измените режим поиска на расширенный то в Заменить использование на местах \ п,


2
2017-09-02 18:02



Почему нет \r\n (вместо \n)? - Peter Mortensen