744 votes

Comment ajouter une sortie à la fin d'un fichier texte ?

Comment ajouter la sortie d'une commande à la fin d'un fichier texte ?

969voto

aioobe Points 158466

Utilice >> au lieu de > pour diriger la sortie vers un fichier :

your_command >> file_to_append_to

Si file_to_append_to n'existe pas, il sera créé.

Exemple :

$ echo "hello" > file
$ echo "world" >> file
$ cat file 
hello
world

8 votes

Le problème est que echo supprime les nouvelles lignes de la chaîne. Comment ajouter à un fichier une chaîne de caractères contenant des nouvelles lignes ?

9 votes

@TimothySwan, je crois qu'avec l'option -e.

2 votes

Echo ne supprime pas les nouvelles lignes de la chaîne. Si vous ne citez pas correctement l'argument, alors l'interpréteur de commandes divisera la chaîne et passera les arguments à echo et echo ne verra même pas les nouvelles lignes.

81voto

walta Points 2209

Vous pouvez utiliser l'opérateur >>. Cela ajoutera les données d'une commande à la fin d'un fichier texte.

Pour tester cela, essayez d'exécuter :

echo "Hi this is a test" >> textfile.txt

Faites-le deux ou trois fois, puis courez :

cat textfile.txt

Vous verrez que votre texte a été ajouté plusieurs fois au fichier textfile.txt.

28voto

Nev Stokes Points 3162

Utilisez le >> pour ajouter du texte à un fichier.

15voto

jm666 Points 17312

Pour l'ensemble de la question :

cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt

ceci ajoutera 720 lignes (30*24) dans o.txt et après renommera le fichier en fonction de la date actuelle.

Exécuter l'opération ci-dessus avec le cron toutes les heures, ou bien

while :
do
    cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
    sleep 3600
done

7voto

sballmer Points 46

Je vous suggère de faire deux choses :

  1. Utilice >> dans votre shell script pour ajouter le contenu à un fichier particulier. Le nom du fichier peut être fixe ou utiliser un certain motif.
  2. Configurer un cronjob horaire pour déclencher le shell script.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X