Блокнот ++ найти и заменить строку новой строкой


212

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

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 ++? Есть ли другие инструменты, которые вы бы посоветовали легко выполнить этой командой?

Ответы:


279

Notepad ++ отлично подойдет.

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

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

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

\ Г \ nxyz

Вам также нужно будет установить «Режим поиска» на «Расширенный» (нижний левый групповой блок в диалоговом окне « Заменить »), чтобы Notepad ++ учитывал escape-коды.


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


2
\ r \ n = Синтаксис новой строки Windows. Тем не менее, для всего, кроме простого старого блокнота, он примет только \ n для новой строки (что также более условно).
Мача

3
Ваша фраза "более условно" вводит в заблуждение. «\ r \ n» является стандартом для Windows. Просто многие редакторы и IDE распознают стандартную строку Unix / Linux, оканчивающуюся на «\ n», и отображают документ соответствующим образом. В "\ n" нет ничего, что делает его более обычным.
Брайан Лейси

Если честно, версия Win / DOS имеет для меня больше смысла. «\ r» означает «Возврат каретки» или «Вернуть каретку / курсор в начало строки», а «\ n» означает «Переместить каретку / курсор вперед на одну строку». Конечно, Unix появился за 20 лет до этого, поэтому я думаю, что в этом смысле именно Microsoft нарушила стандарт.
Брайан Лейси

7
это не будет работать, если вы не установите режим поиска, как указано в другом ответе: superuser.com/questions/34451/…
codeulike

7
Если вы пытаетесь заменить буквальную строку "\ r \ n" на новую строку, мне нужно было сделать следующее: установить режим поиска на обычный, найти / заменить \ r \ n на ***. Затем установите режим поиска на Расширенный, найдите / замените *** на \ r \ n.
goku_da_master

61

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

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


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

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


1
Этот ответ работал для меня, принятый не сделал. Версия 5.8.6
bdwakefield

Да тут же в принятом ответе не уточняется использование расширенного режима ..
Энди

Почему нет \r\n(вместо \n)?
Питер Мортенсен

5

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

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


5

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


1
Почему нет \r\n(вместо \n)?
Питер Мортенсен

2

Для Notepad ++ измените режим поиска на Расширенный, а затем в поле « Заменить на» используйте \ n .


1
Почему нет \r\n(вместо \n)?
Питер Мортенсен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.