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