У меня есть файл (hosts) с некоторыми строками без содержимого. Как удалить эти строки без содержимого?
следующая команда:
sed '/^$/d' input.txt > output.txt
следующая команда:
grep -v '^ input.txt > output.txt
Много путей:
Использование 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/
на /^$/
во всех вышеупомянутых примерах.
Можно использовать Vim в режиме Ex:
ex -sc v/./d -cx hosts
/./
находят не пустые строки
v
, выбор инвертирования
d
удаляет
x
, сохраняют и закрываются