Como faço para remover linhas em branco dos arquivos?

4

Eu tenho um arquivo (hosts) com algumas linhas sem conteúdo, como remover essas linhas sem conteúdo?

    
por wb9688 12.06.2015 / 17:25

3 respostas

9

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
    
por Maythux 12.06.2015 / 17:27
7

Muitas maneiras:

  1. Use sed e edite o arquivo no lugar.

    sudo sed -i -rn '/\S/p' /etc/hosts
    
  2. Mesmo, mas com Perl:

    sudo perl -i -ne 'print if /\S/' /etc/hosts
    
  3. 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.

    
por terdon 12.06.2015 / 17:33
0

Você pode usar o Vim no modo Ex:

ex -sc v/./d -cx hosts
  1. /./ encontra linhas não vazias

  2. v inverter seleção

  3. d delete

  4. x salvar e fechar

por Steven Penny 16.04.2016 / 21:18