Usando sed
Digite o seguinte comando:
sed '/^$/d' input.txt > output.txt
Usando o grep
Digite o seguinte comando:
grep -v '^$' input.txt > output.txt
Eu tenho um arquivo (hosts) com algumas linhas sem conteúdo, como remover essas linhas sem conteúdo?
Digite o seguinte comando:
sed '/^$/d' input.txt > output.txt
Digite o seguinte comando:
grep -v '^$' input.txt > output.txt
Muitas maneiras:
Use sed
e edite o arquivo no lugar.
sudo sed -i -rn '/\S/p' /etc/hosts
Mesmo, mas com Perl:
sudo perl -i -ne 'print if /\S/' /etc/hosts
Versões mais recentes do GNU awk
, no lugar novamente:
sudo awk -i inplace '/\S/' file
Todas as soluções acima também removerão linhas que contêm nada além de espaços em branco. Se você quiser apenas remover linhas vazias e deixar linhas que contenham espaços ou tabulações, etc., altere o /\S/
para /^$/
em todos os exemplos acima.
Você pode usar o Vim no modo Ex:
ex -sc v/./d -cx hosts
/./
encontra linhas não vazias
v
inverter seleção
d
delete
x
salvar e fechar
Tags text-processing