Найти CRLF в Блокноте ++

286

Как я могу найти/заменить все символы CR/LF в Notepad++?

Я ищу что-то эквивалентное специальному символу ^ p в Microsoft Word.

  • 0
    Просто чтобы немного рассказать о том, что упоминал тогда-хакер. Мы используем ULtraEdit-32 на работе, и работая с файлами EDI (x.12), нам часто приходится переносить или разворачивать данные. 2 наиболее распространенные строки поиска и замены - «^ p» и «~». движение в одну сторону заменит «~» на CR / LF для более удобного чтения каждого сегмента. Если пойти по другому пути, файл вернется в формат, необходимый для транслятора EDI. Для таких ленивых, как я, у меня есть эти map'd для ключей для простоты использования.
  • 1
    Хотя не связано, но полезно. Я посетил эту страницу после поиска метода для преобразования текстового файла UNIX в формат Windows в Windows. Это то, что я сделал и работал, CTRL+H , выберите «Режим поиска: Регулярное выражение». «Найти что: $» и «Заменить на: \ r». Скопируйте, вставьте содержимое в Блокнот или сохраните его на диск.
Показать ещё 4 комментария
Теги:
notepad++

17 ответов

371
Лучший ответ

[\r\n]+ тоже должен работать

Обновление 26 марта 2012 года, дата выпуска Notepad ++ 6.0:

OMG, он действительно работает сейчас!!!

Изображение 4742


Оригинальный ответ 2008 (Notepad ++ 4.x) - 2009-2010-2011 (Notepad ++ 5.x)

На самом деле нет, он не работает с regexp...

Но если у вас есть Notepad ++ 5.x, вы можете использовать режим поиска расширенный 'и искать \r\n. Это находит все ваши CRLF.

(Я понимаю, что это тот же ответ, что и другие, но опять же, "расширенный режим" доступен только с Notepad ++ 4.9, 5.x и более)


С апреля 2009 года у вас есть статья wiki на сайте Notepad ++ по этой теме:
" Как заменить концы строк, тем самым изменив макет строки".
(упомянутый georgiecasey в его/ее ниже)

Некоторые соответствующие выдержки включают следующие процессы поиска:

Простой поиск (Ctrl+ F), Режим поиска = Normal

Вы можете выбрать EOL в окне редактирования.

  • Просто переместите курсор в конец строки и введите Shift + Right Arrow.
  • или, чтобы выбрать EOL с помощью мыши, начните с конца строки и перетащите ее в начало следующей строки; перетаскивание вправо от EOL не будет работать. Вы можете вручную скопировать EOL и вставить его в поле для файлов Unix (LF только).

Простой поиск (Ctrl + F), режим поиска = расширенный

Параметр "Extended" показывает \n и \r как символы, которые могут быть сопоставлены.
Как и в обычном режиме поиска, Notepad ++ ищет точный символ.
Поиск \r в файле в формате UNIX не найдет ничего, но поиск \n будет. Аналогично, файл в формате Macintosh будет содержать \r, но не \n.

Простой поиск (Ctrl + F), Режим поиска = Регулярное выражение

Регулярные выражения используют символы ^ и $ для привязки строки соответствия к началу или концу строки. Например, поиск return;$ найдет вхождения "return;" которые происходят без последующего текста на той же строке. Якорные символы работают одинаково во всех форматах файлов.
"." точечный метасимвол не соответствует окончаниям строк.

[Протестировано в Notepad ++ 5.8.5]: поиск регулярных выражений с явным \r или \n не работает (вопреки Документация Scintilla).
Также не выполняется поиск в явном (вставленном) LF или на (невидимых) символах EOL, помещенных в поле, когда выбран EOL. Расширенный поиск (Ctrl + R) без регулярного выражения

Ctrl + M будет вставлять что-то, что соответствует символам новой строки. Они будут заменены на строку замены.
Я рекомендую этот метод как самый надежный, если вам действительно не нужно использовать регулярное выражение.
В качестве примера, чтобы удалить каждую вторую строку новой строки в двустрочном файле, дважды введите Ctrl + M в строку строки поиска и один раз в поле строки замены.

Расширенный поиск (Ctrl + R) с Regexp.

Ни Ctrl + M, $, ни \r\n не совпадают.


В той же wiki также упоминается альтернатива Hex editor:

  • Введите новую строку в начале документа.
  • Затем выберите просмотр документа в шестнадцатеричном режиме.
  • Выберите одну из новых строк и нажмите Ctrl + H.
  • Пока у вас есть диалоговое окно "Заменить" вверх, выберите в фоновом режиме новую строку замены и Ctrl + C скопировать ее, чтобы вставить ее в "Заменить" с помощью текстового ввода.
  • Затем замените или замените все по своему усмотрению.

Примечание: символ, выбранный для новой строки, обычно отображается как 0a.
Это может иметь другое значение, если файл находится в формате Windows. В этом случае вы всегда можете перейти на Edit -> EOL Conversion -> Convert to Unix Format, а после замены заменить его и Edit -> EOL Conversion -> Convert to Windows Format.

  • 1
    Я работал v 4.7. Обновление до новейшей версии и расширенный режим работает как рекламируется. Спасибо всем, кто откликнулся.
  • 0
    +1: у меня был 4.6, и у меня была похожая проблема. И благодаря вашему ответу я обновился до 5+. Спасибо!
Показать ещё 10 комментариев
21

Похоже, что это FAQ, и предлагаемое разрешение:

Простой поиск (Ctrl + H) без регулярного выражения

Вы можете включить View/Show End of Line или просмотреть/Показать все и выбрать видимые символы новой строки. Тогда, когда вы запускаете команду некоторыми символами соответствие символа новой строки будет вставлен в поле поиска. Матчи будет заменена заменой строка, в отличие от режима регулярного выражения.

Примечание 1: Если вы выберете их с помощью мышь, начните перед ними и перетащите к началу следующей строки. Перетаскивание до конца строки не будет Работа.

Примечание 2: Вы не можете копировать и вставлять их в поле себя.

Расширенный поиск (Ctrl + R) без регулярного выражения

Ctrl + M вставляет что-то, что соответствует символам новой строки. Они будут заменены на строку замены.

  • 1
    Вы также можете использовать Ctrl + M, чтобы вставить новые строки в строку замены.
  • 2
    Это часто задаваемые вопросы, потому что это что-то вроде дизайнерской бородавки в другом блестящем продукте.
10

В диалоговом окне "Заменить" вы хотите установить режим поиска "Extended". Нормальные или регулярные режимы выражения не будут работать.

Затем просто найдите "\ r\n" (или просто \n для файлов unix или просто \r для файлов формата Mac) и установите замену на все, что вы хотите.

  • 0
    Этот ответ устарел. Режим регулярных выражений теперь работает.
  • 0
    Этот ответ был устаревшим, когда он был написан - Mac не использует \r с 2001 года ... (теперь он unix)
9

Мне не повезло с регулярными выражениями из окна поиска/замены.

Однако это работает в Notepad ++ v4.1.2:

  • Используйте меню "Показать | Показать конец строки", чтобы включить отображение символов конца строки. (Каналы возврата каретки должны отображаться как один затушеванный символ CRLF.)

  • Выберите один из символов CRLF (поместите курсор прямо перед ним, удерживайте клавишу SHIFT, а затем один раз нажмите клавишу RIGHT CURSOR).

  • Скопировать символ CRLF в буфер обмена.

  • Убедитесь, что диалоговое окно find или find/replace не открывается.

  • Откройте диалог поиска/замены. В поле "Найти что" отображается содержимое буфера обмена: в этом случае символ CRLF, который отображается как 2 "полевые символы" (предположительно это непечатаемый символ?)

  • Убедитесь, что параметр "Регулярное выражение" выключен.

Теперь вы можете рассчитывать, находить или заменять по желанию.

  • 0
    Простой и лучший ..
5

Изображение с CRLF

Изображение 4743


Изображение без CRLF

Изображение 4744

  • 0
    Псевдоним меню ПравкаПоказать символПоказать конец строки .
4

В 2013 году, v6.13 или новее, используйте:

Меню Правка → Преобразование EOL → Формат Windows.

  • 0
    Это не охватывает общий случай замены CRLF одним или несколькими произвольными символами. Или заменить один или несколько произвольных символов на CRLF (скажем, заменить пробелы на CRLF).
4

Как я его нашел, это использовать функцию Replace и использовать "\n" в режиме "Extended". Я использую версию 5.8.5.

  • 1
    Один из немногих пунктов на этой странице, который работает. Использование notepadd ++ 5.8.6. Трудно поверить в то, что так просто должно потребоваться слишком много сложных и часто не работающих ответов, которые были даны в этой теме.
2

Если вам нужно выполнить сложную замену регулярного выражения, включающую \r\n, вы можете обойти ограничение с помощью трехэтапного подхода:

  1. Заменить все \r\n тегом, скажем, #GO# → Проверить 'Extended', заменить \r\n на #GO#
  2. Выполните регулярное выражение, например, удалите многострочный ICON="*" из html-закладок → Проверьте регулярное выражение, замените ICON=.[^"]+.> by >
  3. Поставить обратно \r\n → Проверить 'Extended', заменить #GO# на \r\n
  • 0
    Спасибо, что сработало для меня.
2

Используйте функцию расширенного поиска (Ctrl + R) и используйте сочетание клавиш для CRLF (Ctrl + M), чтобы вставить возврат каретки.

  • 0
    Ctrl + R не работал для меня, когда я попробовал это. В документ вставлен странный управляющий символ « DC2 ». Версия Notepad ++: 7.5.6 (2018-05-19).
2

Предполагая, что у него есть поиск "регулярных выражений", найдите \r\n. Я предпочитаю \r?\N, потому что некоторые файлы не используют возврат каретки.

EDIT: Спасибо за отзывы, кто бы ни проголосовал за это. Я узнал, что... ну, ничего, потому что вы не дали никакой обратной связи. Почему это неправильно?

  • 1
    Я не уверен точно, почему это не работает, но это не так. Я предполагаю, что эта реализация регулярного выражения (в Notepad ++) проверяет только одну строку за раз и игнорирует любые символы новой строки. Вероятно, поэтому вы были отклонены.
  • 1
    Ага. regex строка за строкой в notepad ++, поэтому вы можете позиционно сопоставлять EOL с $, но не можете искать / заменять выражения, которые пересекают границы строк.
1

Я открыл файл в Notepad++ и сделал замену в несколько шагов:

  1. Заменить все "\ r\n" на "\ r\n"
  2. Заменить все ";\r\n" на "\ r\n"
  3. Заменить все "\ r\n" на ""

Это помещает все разрывы, где они должны быть, и удаляет те, которые разбивают файл.

Это сработало для меня.

0

Перейдите на View--> Показать symbol--> Показать всех персонажей//Это сработало для меня

0

Я был совершенно не в состоянии сделать это в NP v6.9. Я нашел это достаточно легко на Microsoft Word (2K).

Откройте документ, перейдите к edit-> заменить.

Затем в нижней части окна поиска нажмите "еще", затем найдите кнопку "Специальные", и у них есть несколько вещей для вас. Для стиля Dos я использовал "параграф". Это пара в земле.

0

Сделайте эту настройку. Меню- > Вид- > Показать символ- > снимите флажок Показывать конец строки

  • 1
    Это не отвечает на оригинальный вопрос. Пожалуйста, объясните, почему вы считаете это полезным вкладом в эти вопросы и ответы. Пожалуйста, также прочитайте страницы справочного центра о том, как сделать полезные ответы.
0

Просто сделайте a\r с помощью find и замените пробел в поле replace, чтобы все было в одной строке. Затем выполните поиск и замените (в моем случае - на двоеточие) и замените на:\n

:) -T & С

  • 1
    Это отличается от существующих ответов, как?
0

Может быть, вы можете использовать плагины TextFX

В TextFX перейдите к редактированию textfx → удалите пустые строки

0

Чтобы изменить документ отдельных строк в одну строку, каждая строка формирует одну запись в списке, разделенном запятыми:

  • ctrl + f, чтобы открыть поиск/заменитель.
  • Перейдите на вкладку "Заменить".
  • Заполните запись "Найти что" с помощью "\r\n".
  • Заполните запись "Заменить на" "," или "," (в зависимости от предпочтения).
  • Отметьте флажок "Матч всего слова" (важный бит, который ускользает от логики).
  • Установите переключатель "Extended".
  • Нажмите кнопку "Заменить все".

Эти шаги включают, например,

foo bar

bar baz

baz foo

в

foo bar, bar baz, baz foo

или: (в зависимости от предпочтения)

foo bar, bar baz, baz foo

Ещё вопросы

Сообщество Overcoder
Наверх
Меню