4

Я пытаюсь удалить все пустые строки в текстовом файле. Есть ли быстрый способ сделать это?

Что я имею

line one

line two

Что я хочу

line one
line two

Я использую Notepad++, поэтому решение с использованием Notepad++ приветствуется.

У меня тоже есть Cygwin , так что если ничего другого, сценарий подойдет.

4 ответа4

18

Используйте меню:

1) Выделить весь текст (Ctrl-A)

2) TextFX -> TextFX Edit -> Удалить пустые строки

3

Макрос может быть страшным, случайная потеря первых символов, если он не в линии.

  • Вид> Показать символы> Показать конец строки

Обратите внимание, что он заканчивается на CR LF (это возврат каретки и перевод строки, который \r \n), Ctrl+H, затем включите расширенную замену "\r \n \r \n" на "\r \n"

Он будет циклически проходить и удалять двойной интервал, возможно, вам придется повторить, если он больше, чем просто двойной интервал. (Еще одна вещь, которую нужно учитывать: Edit> Trim Trailing White Space.)

2

Переключитесь на расширенный режим поиска в диалоге замены.

Найти что: \r \n \r \n

Заменить на: \r \n

Нажмите Заменить все. Все пустые строки исчезли.

0

В Cygwin:

$ sed -i '/^$/d' <name_of_your_textfile.txt>

Или, если "пустые строки" могут содержать символы табуляции и пробелы:

$ sed -i '/^[ \t]*$/d' <name_of_your_textfile.txt>

-i означает "редактировать на месте", поэтому, если ваши текстовые файлы полезны, вы можете использовать команды без -i и направить вывод в другой файл, посмотреть результаты и затем переименовать их.

Использование Vim (должно поставляться с Cygwin, но есть и версия для Windows):

:%g/^[ \t]*$/d

Это имеет то преимущество, что вы непосредственно видите свои результаты и можете отменить их, нажав "u". Вы также можете столкнуться с меньшим количеством проблем с окончаниями строк Windows (зависит от конфигурации Cygwin).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .