Como limpar texto em um arquivo?

50

Como limpar texto que existia em um arquivo de texto sem abri-lo?

Por exemplo, eu tenho um arquivo como hello.txt com alguns dados de texto nele & amp; Como posso limpar o texto total no arquivo sem abri-lo.

    
por Ten-Coin 13.12.2013 / 11:05

9 respostas

99

Basta abrir seu terminal com CTRL + ALT + T e digitar como

 > hello.txt

é isso, seus dados nesse arquivo serão apagados sem que seja necessário abri-lo.

Exemplo:

    
por Ten-Coin 13.12.2013 / 11:06
18

A maneira mais fácil de truncar um arquivo é redirecionar a saída do comando no-op do shell ( : ) para o arquivo que você deseja apagar.

: > hello.txt
    
por eradman 15.11.2015 / 02:43
11

Eu também vou usar o redirecionamento como a resposta do rajagenupula. Mas há um pouco mais de flexibilidade. Abra um terminal e digite,

cat > hello.txt

Pressione Ctrl + C . Isso apagará o arquivo anterior. Se você quer até este tanto, está bem.

Se desejar, você pode fazer algo mais depois de limpar o arquivo. Desta forma, não só você pode limpar um arquivo sem abrir, mas também você pode escrever algumas linhas com formatação adequada no arquivo. Digamos que você queira escrever "O Ubuntu é o melhor sistema operacional" depois de limpar o arquivo, apenas faça

cat > hello.txt
Ubuntu is the 
best OS

Em seguida, pressione Ctrl + C . Agora o arquivo anterior é eliminado. Ao mesmo tempo, as palavras estão em duas linhas, como eu as coloquei.

Veja o exemplo:

    
por souravc 13.12.2013 / 11:20
8

Eu tenho que fazer isso o tempo todo com arquivos de log. A maneira mais fácil que encontrei é com o seguinte comando:

cat /dev/null > hello.txt

Isso exclui o allo do conteúdo do arquivo e deixa um arquivo vazio sem ter que abri-lo em um editor, selecionar texto, qualquer uma dessas coisas. Mais especificamente, o que ele faz é substituir o conteúdo do arquivo pelo conteúdo de "/ dev / null", ou nada. É bem legal, na verdade.

A única ressalva é que o usuário em que você está atualmente conectado deve ter permissão de gravação para o arquivo mencionado.

    
por Don Briggs 13.12.2013 / 18:15
5

Se um arquivo foi criado com o nome hello.txt e foi fornecido com alguns textos, então o comando abaixo no terminal ctrl + alt + t removerá todo o texto no arquivo hello.txt ,

echo "" > hello.txt

    
por Avinash Raj 13.12.2013 / 11:20
2

Outra abordagem - cp the /dev/null para o arquivo

xieerqi:$ cat testFile.txt                                                                                        
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 83100492  26269816  76% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914492        4   2914488   1% /dev
tmpfs             585216     1152    584064   1% /run
none                5120        0      5120   0% /run/lock
none             2926072    98096   2827976   4% /run/shm
none              102400       76    102324   1% /run/user

xieerqi:$ cp /dev/null testFile.txt                                                                               

xieerqi:$ cat testFile.txt

xieerqi:$ 
    
por Sergiy Kolodyazhnyy 15.11.2015 / 02:53
0

Então, vejo muitos redirecionamentos sendo usados para responder a isso;)

Uma abordagem um pouco diferente com o combo: rm & amp; toque em

rm hello.txt && touch hello.txt

( sim ... ainda outro truque! )

Portanto, com este comando combo o arquivo hello.txt não foi aberto e no final você ainda tem o arquivo hello.txt em seu lugar com o conteúdo limpo. Como você queria!

    
por precise 27.12.2013 / 20:33
0
vi filename -c ':1,$d' -c ':wq'

funcionou melhor para mim por causa da permissão especial que tinha

    
por Daniel 20.03.2018 / 22:39
0

Não é a resposta mais curta, mas ...

Esta resposta é baseada em outra de Super User . Embora não seja o comando bash mais curto, truncate é o mais legível para novatos médios:

$ echo Hello > Hello.txt
$ echo World! >> Hello.txt
$ cat Hello.txt
Hello
World!
$ truncate -s 0 Hello.txt
$ ll Hello.txt
-rw-rw-r-- 1 rick rick 0 Mar 20 17:32 Hello.txt

Parâmetros usados com o comando truncate aqui:

  • "- s" define o tamanho
  • o tamanho "0" será zero

Limpar tudo, exceto os primeiros 10.000 bytes

Uma vantagem de truncate é que você pode especificar quanto manter, não apenas zero:

$ truncate -s 10000 Hello.txt

... truncará tudo após os primeiros 10.000 bytes. Isso pode ser útil se um programa enlouquecer e despejar muitos megabytes de dados em um pequeno arquivo de log:

  • Execute o comando truncate para um tamanho normal razoável maior de 10K
  • Abra o arquivo com o seu editor de texto e pressione End
  • Destaque e PgUp para excluir os bytes restantes que não pertencem (geralmente reconhecíveis por caracteres ilegíveis ASCII).
por WinEunuuchs2Unix 21.03.2018 / 00:39