Видалення порожніх рядків у Блокноті ++


384

Як я можу замінити порожні рядки в Блокноті ++? Я спробував знайти і замінити порожні рядки в знахідці, і нічого не замінив, але це не вийшло; йому, ймовірно, потрібен регулярний вираз

Відповіді:


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
Якщо ви хочете видалити рядки з лише пробілами та вкладками, або нічого, спробуйте скористатись замінником regex, щоб відповідати \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)

Знімок екрана видалення порожніх рядків


На жаль, це не враховує ваш вибір, воно видалить усі порожні рядки у файлі, навіть якщо ви вибрали лише деякі з них.
Фабіо каже: Відновіть Моніку

Якщо це разова операція, ви можете витягнути вибрані рядки на нову вкладку блокнота ++ і виконати цю операцію там. Скопіюйте та вставте процедуру протягом 5 секунд. На мою думку, будь-яке інше рішення, яке неможливо здійснити за цей час, є марним. Але якщо ви робите це щодня по 100 разів ...
кредо

Я використовував це (навіть призначив ярлик), але це набагато повільніше, ніж варіант вище, тому використовуйте розумно ...
Betlista

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 чи подібного.
Cam Jackson

3
Ось посилання на плагін TextFx. Я вважаю це дуже корисним. Використовуйте: Settings > Import > plugin...і знайдіть файл dll, щоб встановити його. Це стає пунктом меню відPlugins
Микола Пікерінг

1
чи буде це працювати на всіх відкритих документах або на одному документі одночасно?
Занедбане

76
  1. блокнот ++
  2. Ctrl-H
  3. Виберіть Регулярне вираження
  4. Увійдіть, ^[ \t]*$\r?\nщоб знайти що, залиште заміну порожнім. Це буде відповідати всім рядкам, починаючи з пробілу та закінчуючи поверненням каретки (у цьому випадку вікна crlf)
  5. Натисніть кнопку Знайти далі, щоб переконатися, як вона відповідає лише порожнім рядкам.

1
Мені довелося використовувати цей метод замість деяких інших методів, щоб з легкістю працювати в макросі. Дякую.
Мафу Джош

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

30
  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. Дякую!
венчун

1
плюс один, тому що я нарешті знаю ярлик для заміни :-D
Betlista

14

У блокноті ++ натисніть 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 Edit -> Видалити порожні рядки та порушити всі порожні рядки.

Бічна примітка - якщо рядок порожній, тобто не містить пробілів, це буде працювати


12

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


11

Ctrl + H.

знайти - \ r \ r замінити на - \ r.


Це працює для мене, видаляючи зайвий рядок, у сенсі знаходження подвійної \ r заміни на одиничну \ r. Дякую!!
генпет

Це спрацювало добре, проте я виявив, що мені потрібно було запустити його кілька разів у своєму документі, перш ніж усі екземпляри \ r \ r пішли. Я не знаю чому.
Яструб

7

Це, очевидно, не працює, якщо порожні рядки містять вкладки або пробіли. Багато веб-сторінок (наприклад, http://www.guardian.co.uk/ ) містять ці білі лінії внаслідок несправного редактора HTML.

Видаліть пробіл, використовуючи регулярний вираз, наступним чином:

зміни шаблону: [\ t] + $ у нічого.

де [\ t] відповідає або вкладці, або пробілу. '+' відповідає одному або більше подій, а "$" позначає кінець рядка.

Потім використовуйте блокнот ++ / 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 для отримання додаткової інформації про regex.


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

Примітка. Етап 1 видалить ваше намірення коду через вкладки та порожні пробіли


4

CTRL + A, виберіть меню TextFX -> EditFX Edit -> Видалити порожні рядки, як запропоновано вище.

Але якщо рядки містять пробіл, тоді перемістіть курсор до цього рядка та зробіть CTRL + H. У секції «Знайди що:» відображатиметься порожній пробіл, а в розділі «Замінити на» залиште його порожнім. Тепер усі пробіли видалено, а тепер спробуйте CTRL + A, виберіть меню TextFX -> TextFX Edit -> Видалити порожні рядки


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 Edit> Обрізати проміжні простори

Це видалить усі проміжки, включаючи пробіли в порожніх рядках. Переконайтеся, що жодні пробіли не є істотними.


0

Кілька з перерахованих вище виразів та розширених виразів не працювали для мене, але регулярний вираз "$ \ n $" зробив.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.