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

Рекомендуемое чтение:

Руководства по безопасности Ubuntu Linux malware - Wikipedia
1
задан 12 June 2015 в 18:31

2 ответа

Много способов:

Используйте sed и отредактируйте файл на месте.
sudo sed -i -rn '/\S/p' /etc/hosts
То же, но с Perl:
sudo perl -i -ne 'print if /\S/' /etc/hosts
Новые версии GNU awk, снова на месте:
sudo awk -i inplace '/\S/' file

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

7
ответ дан 23 May 2018 в 19:54
  • 1
    для полноты, вы также можете сказать grep -v '.' file. – fedorqui 12 June 2015 в 22:04
  • 2
    @fedorqui действительно, но я думаю, что вы имели в виду grep '.' file, мы хотим удалить пустые строки, а не сохранять их. – terdon♦ 12 June 2015 в 22:26
  • 3
    Правда! Я понял это наоборот – fedorqui 13 June 2015 в 00:30
  • 4
    +1, однако переключатель -r в команде sed на самом деле не нужен, поскольку вы не пользуетесь ERE -специфическим синтаксисом – kos 13 June 2015 в 11:12

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

ex -sc v/./d -cx hosts
/./ найти непустые строки v инвертировать выбор d удалить x сохранить и закрыть
0
ответ дан 23 May 2018 в 19:54

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

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