Comment ajouter la sortie d'une commande à la fin d'un fichier texte ?
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 ?
Comment ajouter la sortie d'une commande à la fin d'un fichier texte ?
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 ?
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.
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.
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
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.