Удаление пустых строк в Notepad ++


384

Как заменить пустые строки в Notepad ++? Я попытался найти и заменить пустыми строками в поиске, но ничего не заменить, но это не сработало; это, вероятно, нуждается в регулярном выражении.

Ответы:


395

Вам нужно что-то вроде регулярного выражения.

Вы должны быть в Extendedрежиме

Если вы хотите, чтобы все строки заканчивались на одной строкой, используйте \r\n. Если вы хотите просто удалить пустые строки, используйте \n\rкак предложено @Link.

Замените любое выражение ничем.


21
Сначала следует выбрать «расширенный» в режиме поиска.
q0987

14
Чтобы ваши линии не были соединены вместе, вы должны искать \r\n\r\nи заменять их \r\n.
Роберт Каучер

1
Смотрите комментарий @ BoltClock ниже. Кроме того, если ваш файл сохранен с окончаниями строк Unix, вы можете преобразовать его в окончания строк Windows в меню «Правка»> «Преобразование EOL»> «Формат Windows», прежде чем выполнять поиск и замену.
Big McLargeHuge

9
Если вы хотите удалить строки только с пробелами и символами табуляции или ничего, попробуйте использовать регулярное выражение, чтобы \r\n\W*\r\nзаменить и заменить на\r\n
Myster

2
@ ST3 хмм , что я думал, Это один намного лучше: (\r\n|\r|\n)(\s*(\r\n|\r|\n))+и заменить \r\nувидеть его в действии здесь: regex101.com/r/qD9dB1/1
Myster

567

Теперь есть встроенный способ сделать это начиная с версии 6.5.2

Edit -> Line Operations -> Remove Empty Lines или Remove Empty Lines (Containing Blank characters)

Скриншот удаления пустых строк


К сожалению, это не учитывает ваш выбор, оно удалит все пустые строки в файле, даже если вы выбрали только некоторые из них.
Фабио говорит восстановить Монику

Если это однократная операция, вы можете извлечь выбранные строки на новую вкладку notepad ++ и выполнить эту операцию там. Процедура копирования-вставки за 5 секунд. Любой другой обходной путь, который не может быть достигнут за это время, по моему мнению, является пустой тратой. Но если вы делаете это каждый день 100 раз ...
Символ веры

Я использовал это (даже назначил свой ярлык), но это намного медленнее, чем вариант выше, поэтому используйте
осторожно

122

Есть плагин, который добавляет меню под названием TextFX . Это меню, в котором находится множество вариантов быстрого редактирования текста, дает человеку возможность быстро вносить изменения в код. В этом меню вы можете найти варианты, такие как «Удалить кавычки», «Удалить пустые строки», а также «Развернуть» и «Переписать текст».

Сделайте следующее:

TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines

7
Не уверен, когда, но может показаться, что этот плагин установлен по умолчанию сейчас. Немного не по теме, но еще одна невероятно полезная функция TextFX > TextFX Tools- сортировка строк, опционально удаляющая дубликаты. Очень удобный способ сделать Unix sort -uна Windows-коробке без Cygwin или unxutils или подобного.
Кэм Джексон

3
Вот ссылка на плагин TextFx. Я нахожу это очень полезным. Используйте: Settings > Import > plugin...и найдите файл dll для его установки. Это становится пунктом менюPlugins
Николас Пикеринг

1
будет ли это работать на всех открытых документах или на одном документе за раз?
Заброшенный

76
  1. Notepad ++
  2. Ctrl-H
  3. Выберите регулярное выражение
  4. Введите, ^[ \t]*$\r?\nчто найти, оставьте заменить пустым. Это будет соответствовать всем строкам, начиная с пробела и заканчивая возвратом каретки (в данном случае это windows crlf)
  5. Нажмите кнопку «Найти далее», чтобы убедиться, что она соответствует только пустым строкам.

1
Мне пришлось использовать этот метод вместо некоторых других методов, чтобы он легко работал в макросе. Спасибо.
Мафу Джош

5
еще более короткие и меньшие замены, необходимые из-за множественных пустых строк, будут заменены сразу: ^ \ s * $ \ r? \ n
njank

31
  1. Нажмите Ctrl + H (ярлык для замены).
  2. В поле Найти , введите ^\R(для точных пустых строк) или ^\h*\R(только для пустых строк с пробелами).
  3. Оставьте замену зоной пустой .
  4. Проверьте опцию Обтекание .
  5. Выберите режим поиска регулярных выражений .
  6. Нажмите на кнопку Заменить все .

введите описание изображения здесь


1
Это работало для меня без каких-либо проблем или дополнительных настроек для изменения. Спасибо!
Bonez024

19

Вы можете следовать технике, как показано на следующем снимке экрана:

  • Найти то, что: ^\r\n
  • Заменить: keep this empty
  • Режим поиска: Regular expression
  • Обернуть вокруг: выбрано

введите описание изображения здесь

ПРИМЕЧАНИЕ: для * nix файлов просто найдите\n


17

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

  1. Нажмите ctrl + h(ярлык для замены)
  2. Напишите одно из следующих регулярных выражений в find whatполе. [\n\r]+$или^[\n\r]+
  3. Оставьте Replace withполе пустым
  4. В Search ModeвыберитеRegex
  5. Нажмите на Replace All

    Готово!

Это единственное решение, которое не испортило мои огромные файлы .csv. Спасибо!
17

1
плюс один, потому что я, наконец, знаю ярлык для замены :-D
Бетлиста

14

В notepad ++ нажмите сочетание клавиш CTRL + H, в режиме поиска нажмите переключатель «Расширенный (\ n, \ r, \ t ...)», затем введите в поле «Найти что»: \ r \ n (сокращение от CR LF). ) и оставьте поле "Заменить на" пустым.

Наконец ударил заменить все


на самом деле, я попробовал, см. мое разъяснение в моем ответе. Вы были на что-то!
Брэд

3
Это предполагает, что окончания строки - Windows (CRLF), хотя, если ваш файл сохранен с поиском конца строки Unix, ищите только \n.
BoltClock

@Brad: Я писал между () "сокращенно для CR LF", не хотел, чтобы codetrek думал, что \ n - это CR, поэтому редактирование.
Бассем

Неправильный ответ, ставит все строки в одну строку.
m0skit0

12

Ну, я не уверен насчет регулярного выражения или вашей ситуации ..

Как насчет CTRL + A, выберите меню TextFX -> Редактирование TextFX -> Удалить пустые строки и переместите всю пустую строку.

Примечание: если строка пустая, то есть не содержит пробелов, это будет работать


12

Вы можете найти следующее регулярное выражение: ^(?:[\t ]*(?:\r?\n|\r))+и заменить его пустым полем


11

Ctrl + H.

найти - \ r \ r заменить на - \ r.


Это работает для меня, удаляя лишнюю строку, в смысле нахождения двойной замены \ r на одну \ r. Спасибо!!
Genpet

Это сработало хорошо, однако я обнаружил, что мне нужно запустить его несколько раз в моем документе, прежде чем все экземпляры \ r \ r исчезнут. Я не уверен почему.
Hawkwing

7

Это, очевидно, не работает, если пустые строки содержат вкладки или пробелы. Многие веб-страницы (например, http://www.guardian.co.uk/ ) содержат эти белые линии из-за неисправного редактора HTML.

Удалите пробелы с помощью регулярного выражения следующим образом:

изменить шаблон: [\ t] + $ в ничто.

где [\ t] соответствует либо табуляции или пробел. «+» соответствует одному или нескольким вхождениям, а «$» обозначает конец строки.

Затем используйте notepad ++ / textFX для удаления одиночных или лишних пустых строк. Убедитесь, что эти пустые строки не имеют значения в данном контексте.


5

введите описание изображения здесь

Иногда \ n \ r и т. Д. Не работают, чтобы понять, каким должно быть ваше регулярное выражение.

Преимущество этого трюка: если вы хотите заменить несколько файлов одновременно, вам нужен этот метод. Выше не получится ...


5

1) Ctrl + H(или Search 🠆 Replace..) чтобы открыть окно замены.

2) Выберите 'Search Mode' «Регулярное выражение».

3) В «Find What» типа ^(\s*)(.*)(\s*)$& в «Заменить» типа\2

  • ^ - соответствует началу строки символа
  • (\s*) - Соответствует символам пустого пространства
  • (.*) - Соответствует любым персонажам
  • (\s*) - Соответствует символам пробелов
  • $ - Соответствует символу конца строки
  • \2 - Обозначает совпадающий контекст 2-й скобки

введите описание изображения здесь Обратитесь к https://www.rexegg.com/regex-quickstart.html за дополнительной информацией о регулярных выражениях.


4
  1. Редактировать >> Пустые операции >> Обрезать начальные и конечные пробелы (для удаления черных вкладок и пробелов в пустых строках)
  2. Ctrl+ Hполучить окно замены и заменить шаблон: ^\r\nничем (выберите регулярное выражение)

Примечание: шаг 1 удалит ваш код с помощью вкладок и пробелов


4

CTRL + A, выберите меню TextFX -> Редактирование TextFX -> Удалить пустые строки, как предложено выше, работает.

Но если в строках есть пробел, переместите курсор на эту строку и нажмите сочетание клавиш CTRL + H. Секунд «Найти что» покажет пробел, а в разделе «Заменить на» оставьте его пустым. Теперь все пробелы удалены и теперь попробуйте CTRL + A, выберите меню TextFX -> Edit TextFX -> Удалить пустые строки


4

/n/rпредполагает определенный тип переноса строки. Для нацеливания на любую пустую строку вы также можете использовать:

^$

Это говорит - любая линия, которая начинается, а затем заканчивается ничем между. Это больше всего ловушка. Заменить на ту же пустую строку.


3

Я не видел объединенный ответ как ответ, поэтому найдите ^ \ s + $ и замените {ничем}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line

если вы хотите несколько строк, вы можете попробовать: ^\s+^(\S)и заменить на \1.
jiggunjer


1

Простая альтернатива для удаления пробелов из пустых строк:

  1. TextFX> Редактирование TextFX> Обрезать завершающие пробелы

Это удалит все конечные пробелы, включая конечные пробелы в пустых строках. Убедитесь, что в конце нет пробелов.


0

Некоторые из вышеперечисленных выражений и расширенных выражений у меня не сработали, но сработало регулярное выражение "$ \ n $".


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