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:
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.
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:
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
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:
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.
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
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:$
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!
vi filename -c ':1,$d' -c ':wq'
funcionou melhor para mim por causa da permissão especial que tinha
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:
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:
truncate
para um tamanho normal razoável maior de 10K Tags command-line bash