Comment ajouter la sortie d'une commande à la fin d'un fichier texte?
478
Utilisez >>
plutôt que >
lors de la direction de la sortie vers un fichier
your_command >> file_to_append_to
S'il file_to_append_to
n'existe pas, il sera créé.
Exemple:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
echo
supprime les sauts de ligne de la chaîne. Comment ajouter à un fichier une chaîne contenant des sauts de ligne?Pour
append
utiliser un fichier>>
alors la sortie doit être
Pour
overwrite
utiliser un fichier>
alors le résultat est
hello tom
la source
Vous pouvez utiliser l'opérateur >>. Cela ajoutera les données d'une commande à la fin d'un fichier texte.
Pour tester cela, essayez de lancer:
Faites cela plusieurs fois, puis exécutez:
Vous verrez que votre texte a été ajouté plusieurs fois au fichier textfile.txt.
la source
Utilisez
command >> file_to_append_to
pour ajouter à un fichier.Par exemple
echo "Hello" >> testFile.txt
ATTENTION: si vous n'en utilisez qu'un seul,
>
vous écraserez le contenu du fichier. Pour vous assurer que cela ne se produira jamais, vous pouvez ajouterset -o noclobber
à votre.bashrc
.Cela garantit que si vous tapez accidentellement
command > file_to_append_to
dans un fichier existant, il vous avertira que le fichier existe déjà. Exemple de message d'erreur:file exists: testFile.txt
Ainsi, lorsque vous l'utiliserez,
>
il vous permettra uniquement de créer un nouveau fichier, pas d'écraser un fichier existant.la source
Utilisez l'
>>
opérateur pour ajouter du texte à un fichier.la source
L'utilisation de tee avec l'option -a (--append) vous permet d'ajouter à plusieurs fichiers à la fois et également d'utiliser sudo (très utile lors de l'ajout à des fichiers protégés). En plus de cela, il est intéressant si vous devez utiliser d'autres shells en plus de bash, car tous les shells ne prennent pas en charge les opérateurs> et >>
Ce fil a de bonnes réponses sur le tee
la source
pour toute la question:
cela ajoutera 720 lignes (30 * 24) dans o.txt et après renommera le fichier en fonction de la date actuelle.
Exécutez ce qui précède avec le cron toutes les heures, ou
la source
J'utiliserais printf au lieu d'écho car il est plus fiable et traite
\n
correctement le formatage comme la nouvelle ligne .Cet exemple produit une sortie similaire à écho dans les exemples précédents:
Cependant, si vous deviez remplacer printf par echo dans cet exemple, echo traiterait \ n comme une chaîne, ignorant ainsi l'intention
la source
Je vous suggère de faire deux choses:
>>
dans votre script shell pour ajouter du contenu à un fichier particulier. Le nom de fichier peut être fixe ou utiliser un modèle.la source
Par exemple, votre fichier contient:
si vous voulez ajouter à la fin du fichier alors ----> rappelez-vous les espaces entre 'texte' >> 'nom de fichier'
Et pour écraser le contenu du fichier:
la source
cat
... est complètement farfelu. (Il est vide car vous venez de rediriger la sortie standard vers un fichier.)