Como limpar o texto que existia em um arquivo de texto sem abri-lo?
Quero dizer, por exemplo, tenho um arquivo como hello.txt
em alguns dados de texto e como posso limpar o texto total nesse arquivo sem abri-lo?
Com isso, quero dizer não usar nenhum editor como nano, Gedit, etc.
command-line
bash
rɑːdʒɑ
fonte
fonte
Respostas:
Basta abrir seu terminal com CTRL+ ALT+ Te digite como
é isso, seus dados nesse arquivo serão limpos sem abri-lo.
Exemplo:
fonte
stdout
substitui o arquivo existente, se houver. Nesse caso, não há nada emstdout
. Portanto, o arquivo está sendo sobrescrito com void, essencialmente limpando dados anteriores, se houver.A maneira mais fácil é truncar um arquivo é redirecionar a saída do comando no-op shell (
:
) para o arquivo que você deseja apagar.fonte
>
), mas o mais rápido, com certeza .. eu me pergunto por que não foi mencionado em nenhuma das respostas desta pergunta muito vista .. aqui, pegue +1 ..Também vou usar o redirecionamento como a resposta de rajagenupula. Mas há um pouco mais de flexibilidade. Abra um terminal e digite,
E pressione Ctrl+ C. Isso apagará o arquivo anterior. Se você quiser isso, tudo bem.
Se desejar, você pode fazer algo mais depois de limpar o arquivo. Dessa maneira, não apenas você pode limpar um arquivo sem abrir, mas também escrever algumas linhas com a formatação correta no arquivo. Digamos que você queira escrever "O Ubuntu é o melhor SO" depois de limpar o arquivo, basta
Então pressione Ctrl+ C. Agora o arquivo anterior está apagado. Ao mesmo tempo, as palavras existem em duas linhas, como eu as coloco.
Veja o exemplo:
fonte
>
significa redirecionamento.cat > file
gravarástdout
no arquivo, substituindo qualquer arquivo existente.Eu tenho que fazer isso o tempo todo com arquivos de log. A maneira mais fácil que encontrei é com o seguinte comando:
Isso exclui a alocação do conteúdo do arquivo e deixa você com um arquivo vazio sem precisar abri-lo em um editor, selecionar texto, qualquer um desses itens. Mais especificamente, o que ele faz é substituir o conteúdo do arquivo pelo conteúdo de "/ dev / null" ou nada. É bem liso, na verdade.
A única ressalva é que o usuário no qual você está conectado no momento deve ter permissão de gravação no arquivo.
fonte
Se um arquivo foi criado com o nome hello.txt e recebeu alguns textos, o comando abaixo no terminal ctrl+ alt+ tremoverá todo o texto no arquivo hello.txt ,
fonte
Outra abordagem -
cp
o/dev/null
para o arquivofonte
Não é a resposta mais curta, mas ...
Esta resposta é baseada em outra da Superusuário . Embora não seja o comando bash mais curto,
truncate
é o mais legível para iniciantes comuns:Parâmetros usados com o
truncate
comando aqui:Limpar tudo, exceto os primeiros 10.000 bytes
Uma vantagem
truncate
é que você pode especificar quanto manter, não apenas zero:... 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
comando para um tamanho normal maior razoável de 10 Kfonte
Então, vejo muitos redirecionamentos sendo usados para responder a isso;)
Uma abordagem um pouco diferente com o combo: rm & touch
( sim ... mais uma fraude! )
Portanto, com este comando combinado, 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. Assim como você queria!
fonte
funcionou melhor para mim por causa da permissão específica que tinha
fonte
vi
e o que os vários parâmetros e argumentos fazem.