Como remover linhas em branco em arquivos .txt

1

Eu quero mudar o formato de um arquivo de texto, removendo todas as linhas em branco. Como eu posso fazer isso?


(2) 5. A função do condensador é:

a) vaporizar o líquido refrigerante

b) mudar vapor de refrigerante de alta pressão para líquido

c) pressurizar vapor refrigerante de baixa pressão

d) expelir o refrigerante vaporizado

e) baixar a pressão do líquido refrigerante

(2) 6. Uma tonelada de refrigeração é:

a) 13958 kJ por dia

b) 100 kJ por minuto

c) 233 kJ por minuto

d) 13958 J por hora

e) 335 J por segundo


(2) 5. A função do condensador é:
a) vaporizar o refrigerante líquido
b) mudar o vapor refrigerante de alta pressão para líquido
c) pressurizar o vapor refrigerante de baixa pressão
d) retirar o refrigerante vaporizado
e) baixar a pressão do líquido refrigerante

(2) 6. Uma tonelada de refrigeração é:
a) 13958 kJ por dia
b) 100 kJ por minuto
c) 233 kJ por minuto
d) 13958 J por hora
e) 335 J por segundo

Brant
fonte

Respostas:

5

Você pode usar o GNU sed:

sed -i -e "/^$/d" su.txt

Irá apagar linhas em branco.


Se você estiver em uma variante BSD ou OS X, use isso:

sed -i '' -e "/^$/d" su.txt

Aqui, -iassume uma extensão como um argumento - usar a sintaxe do sed do GNU resultaria em um arquivo su.txt-esendo criado.

Keith
fonte
Olá, obrigado pela ajuda. Eu instalei o GNU sed no Window Vista, tentei o SED não funcionar, sem a janela do SED
Brant
@Brant O que você quer dizer com "não funciona" e "sem janela do SED"? Você pode executar o comando a partir de um prompt? Se não, quais erros você vê?
Slhck
Primeiro, não consegui encontrar o atalho do SED em nenhum lugar no menu de inicialização ou na área de trabalho. Então eu corro o bin em Arquivos de Programas -> GnuWin32 -> bin -> SED na unidade C. Em seguida, Black janela para uma fração de segundo e desapareceu
Brant
@Brant é uma ferramenta de linha de comando. Esse comando irá editá-lo no local, invocado de um shell. Não há GUI. Eu recomendo que você instale o cygwin no Windows e use o que vem com ele.
Keith
Instalar o cygwin apenas para remover algumas linhas de um arquivo de texto parece um pouco exagerado para mim.
Richard
0

Isto pode ser conseguido usando grep:

grep . file

Ou experimente o ex- way (compatível com várias plataformas):

ex -s +'v/\S/d' -cwq test.txt

Para vários arquivos (editar no local):

ex -s +'bufdo!v/\S/d' -cxa *.txt

Nota: O :bufdocomando não é POSIX .

Sem modificar o arquivo (basta imprimir na saída padrão):

cat test.txt | ex -s +'v/\S/d' +%p +q! /dev/stdin
kenorb
fonte
nota bufdo não é POSIX pubs.opengroup.org/onlinepubs/9699919799/utilities/ex.html
Steven Penny