Я пытаюсь удалить все пустые строки в текстовом файле. Существует ли быстрый способ сделать это?
Что я имею
line one
line two
Что я хочу
line one
line two
Я использую Блокнот ++, таким образом, решение с помощью Блокнота ++ ценится.
У меня есть Cygwin также, поэтому если ничто иное, сценарий прекрасен.
Используйте меню:
1) Выберите весь текст (Ctrl-A)
2) TextFX-> Редактирование TextFX-> Удаляют Пустые строки
Макрос может быть страшной, случайной потерей первые символы если от строки..
Обратите внимание, которое это заканчивает в CR LF (Это - Возврат каретки и Перевод строки, который является \r\n), Ctrl+H затем включают расширенную замену "\r\n\r\n" с "\r\n"
Это циклически повторится через и удалит двойной интервал, Вы, возможно, должны были бы повториться если его больше, чем просто двойной интервал. (Другая вещь рассмотреть: Редактирование> Конечный пробел Для обрезки.)
Переключитесь на Расширенный режим поиска в диалоговом окне Замены.
Найдите что: \r\n\r\n
Замена: \r\n
Нажмите Replace All. Всех пустых строк не стало.
В 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).