Comment effacer du texte dans un fichier?

54

Comment effacer le texte existant dans un fichier texte sans l’ouvrir?

Je veux dire par exemple, j'ai un fichier comme hello.txt avec des données texte dans & amp; Comment puis-je effacer le texte total de ce fichier sans l'ouvrir

    
posée Ten-Coin 13.12.2013 - 11:05
la source

9 réponses

103

Ouvrez simplement votre terminal avec CTRL + ALT + T et tapez

 > hello.txt

que ce soit, vos données dans ce fichier seront effacées sans l’ouvrir même.

Exemple:

    
réponse donnée Ten-Coin 13.12.2013 - 11:06
la source
24

La méthode la plus simple consiste à tronquer un fichier en redirigeant la sortie de la commande shell no-op ( : ) vers le fichier que vous souhaitez effacer.

: > hello.txt
    
réponse donnée eradman 15.11.2015 - 02:43
la source
12

Je vais aussi utiliser la redirection comme la réponse de rajagenupula. Mais il y a un peu plus de flexibilité. Ouvrez un terminal et tapez,

cat > hello.txt

Et appuyez sur Ctrl + C . Cela effacera le fichier précédent. Si vous voulez autant, c'est bien.

Si vous le souhaitez, vous pouvez faire quelque chose de plus après avoir effacé le fichier. De cette façon, non seulement vous pouvez effacer un fichier sans l’ouvrir, mais vous pouvez également écrire quelques lignes avec un format correct dans le fichier. Dites que vous souhaitez écrire "Ubuntu est le meilleur système d'exploitation" après avoir effacé le fichier, faites simplement

cat > hello.txt
Ubuntu is the 
best OS

Appuyez ensuite sur Ctrl + C . Maintenant, le fichier précédent est effacé. En même temps, les mots sont en deux lignes, comme je les ai mis.

Voir l'exemple:

    
réponse donnée souravc 13.12.2013 - 11:20
la source
9

Je dois le faire tout le temps avec les fichiers journaux. La manière la plus simple que j'ai trouvée est d'utiliser la commande suivante:

cat /dev/null > hello.txt

Cela supprime tout le contenu du fichier et vous laisse un fichier vide sans avoir à l'ouvrir dans un éditeur, sélectionnez du texte, n'importe lequel de ces éléments. Plus précisément, il s'agit de remplacer le contenu du fichier par le contenu de "/ dev / null", ou rien. En fait, c’est assez chic.

La seule mise en garde est que l'utilisateur auquel vous êtes actuellement connecté doit disposer d'une autorisation en écriture sur ce fichier.

    
réponse donnée Don Briggs 13.12.2013 - 18:15
la source
5

Si un fichier a été créé avec le nom hello.txt et fourni avec des textes, la commande ci-dessous du terminal ctrl + alt + t supprimera tout le texte du fichier hello.txt ,

echo "" > hello.txt

    
réponse donnée Avinash Raj 13.12.2013 - 11:20
la source
3

Une autre approche - cp le /dev/null au fichier

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:$ 
    
réponse donnée Sergiy Kolodyazhnyy 15.11.2015 - 02:53
la source
1

Pas la réponse la plus courte mais ...

Cette réponse est basée sur un autre super utilisateur . Bien que ce ne soit pas la commande bash la plus courte, truncate est la plus lisible pour les débutants moyens:

$ 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

Paramètres utilisés avec la commande truncate ici:

  • "- s" définir la taille
  • La taille de "0" sera zéro

Effacer tout sauf les 10 000 premiers octets

Un avantage de truncate est que vous pouvez spécifier combien garder, pas seulement zéro:

$ truncate -s 10000 Hello.txt

... va tout tronquer après les 10 000 premiers octets. Cela pourrait être utile si un programme est devenu fou et a transféré beaucoup de mégaoctets de données dans un petit fichier journal:

  • Exécutez la commande truncate pour une taille normale supérieure de 10 Ko
  • Ouvrez le fichier avec votre éditeur de texte et appuyez sur End
  • Mettez en surbrillance et PgUp pour supprimer les octets restants qui n’appartiennent pas (généralement reconnaissables aux caractères de type ASCII).
réponse donnée WinEunuuchs2Unix 21.03.2018 - 00:39
la source
0

Alors, je vois beaucoup de redirections utilisées pour répondre à cela;)

Une approche un peu différente avec le combo: rm & amp; touch

rm hello.txt && touch hello.txt

( ouais… encore un autre triche! )

Donc, avec cette commande combo le fichier hello.txt n’a pas été ouvert et à la fin vous avez toujours le fichier hello.txt à sa place avec le contenu effacé. Juste comme tu voulais!

    
réponse donnée precise 27.12.2013 - 20:33
la source
0
vi filename -c ':1,$d' -c ':wq'

a fonctionné le mieux pour moi en raison de la permission particulière qu'il avait

    
réponse donnée Daniel 20.03.2018 - 22:39
la source

Lire d'autres questions sur les étiquettes