Как удалить пустые строки из файлов?

У меня есть файл (hosts) с некоторыми строками без содержимого. Как удалить эти строки без содержимого?

6
задан 12 June 2015 в 18:31

3 ответа

Используя Тип sed

следующая команда:

sed '/^$/d' input.txt > output.txt

Используя Тип grep

следующая команда:

grep -v '^ input.txt > output.txt
0
ответ дан 12 June 2015 в 18:31

Много путей:

  1. Использование sed и редактирование файл на месте.

    sudo sed -i -rn '/\S/p' /etc/hosts
    
  2. То же, но с Perl:

    sudo perl -i -ne 'print if /\S/' /etc/hosts
    
  3. Более новые версии GNU awk, на месте снова:

    sudo awk -i inplace '/\S/' file
    

Все вышеупомянутые решения также удалят строки, которые содержат только пробел. Если Вы только хотите удалить пустые строки, и строки отпуска, которые содержат пробелы или вкладки и т.д., изменяются /\S/ на /^$/ во всех вышеупомянутых примерах.

0
ответ дан 12 June 2015 в 18:31

Можно использовать Vim в режиме Ex:

ex -sc v/./d -cx hosts
  1. /./ находят не пустые строки

  2. v, выбор инвертирования

  3. d удаляет

  4. x, сохраняют и закрываются

0
ответ дан 13 June 2015 в 04:31
  • 1
    Я couldn' t соединяются с моим Wi-Fi после того, как я использовал Вашу вторую команду (для " Попытка Ubuntu без installing"). Таким образом, я установил человечность вместе с Windows, и Ваша первая команда работала отлично! Спасибо за справку! – noobiewankanobie 13 September 2016 в 11:31

Другие вопросы по тегам:

Похожие вопросы: