# Ajouter une ligne à un fichier en script bash

**URL:** <https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665>\
**Category:** Programmation\
**Created:** [Mai 19, 2016, 1:50 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665 "2016-05-19T13:50:04Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![iTux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/itux/32/4372_2.png) [@iTux](https://www.debian-fr.org/u/iTux)\
**Post date:** [Mai 19, 2016, 1:50 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665/1 "2016-05-19T13:50:04Z")

</div>

Bonjour,  
j’ai un cron qui tourne et j’aimerais lui dire d’à chaque fois écrire son résultat sur un log dédié.  
Quel commande bash utiliser pour ouvrir un fichier et y rajouter une ligne?

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Mai 19, 2016, 2:11 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665/2 "2016-05-19T14:11:34Z")

</div>

`echo "mon texte qui va bien">>/mon/fichier/de/log`

---

<div class="post-metadata">

**Author:** ![iTux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/itux/32/4372_2.png) [@iTux](https://www.debian-fr.org/u/iTux)\
**Post date:** [Mai 19, 2016, 2:43 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665/3 "2016-05-19T14:43:37Z")

</div>

merci !

---

<div class="post-metadata">

**Author:** ![iTux](https://www.debian-fr.org/user_avatar/www.debian-fr.org/itux/32/4372_2.png) [@iTux](https://www.debian-fr.org/u/iTux)\
**Post date:** [Mai 19, 2016, 2:58 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665/4 "2016-05-19T14:58:35Z")

</div>

en parlant d’echo comment on vide un fichier en ligne de commande?  
j’ai essayé

> echo «&nbsp;&nbsp;»\>\>monlog.log

mais ca ne fonctionne pas

---

<div class="post-metadata">

**Author:** ![Mimoza](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mimoza/32/3858_2.png) [@Mimoza](https://www.debian-fr.org/u/Mimoza)\
**Post date:** [Mai 19, 2016, 3:07 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665/5 "2016-05-19T15:07:33Z")

</div>

Non alors  
«\>\>» = concaténation  
«\>» = remplacement

Du coup pour vider un fichier tu peux faire  
`echo -n >/mon/fichier/a/ecraser`

Le «-n» est là pour éviter à écho de faire un retour à la ligne et donc d’avoir une ligne vide dans ton fichier.

D’ailleurs c’est la commande standard pour créer un fichier, utiliser «touch» ou «vi» est un détournement de leur utilisation normal.

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Mai 19, 2016, 3:14 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665/6 "2016-05-19T15:14:25Z")

</div>

Tu dois utiliser “truncate” c’est fait pour ça:  
`$ truncate -s0 monfichier.log`

---

<div class="post-metadata">

**Author:** ![anon29980398](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/f4b2a3/32.png) [@anon29980398](https://www.debian-fr.org/u/anon29980398)\
**Post date:** [Août 15, 2016, 9:10 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665/7 "2016-08-15T09:10:57Z")

</div>

```auto
michel@debg53sw:~$ ls -la aeff
-rw-r--r-- 1 michel michel 11 août 15 11:09 aeff
michel@debg53sw:~$ > aeff
michel@debg53sw:~$ ls -la aeff
-rw-r--r-- 1 michel michel 0 août 15 11:09 aeff
michel@debg53sw:~$ 

```

Donc, il suffit de faire :

```auto
> /mon/fichier/a/mettreAzéro

```

---

<div class="post-metadata">

**Author:** ![grigric](https://www.debian-fr.org/user_avatar/www.debian-fr.org/grigric/32/3935_2.png) [@grigric](https://www.debian-fr.org/u/grigric)\
**Post date:** [Août 24, 2016, 7:02 UTC](https://www.debian-fr.org/t/ajouter-une-ligne-a-un-fichier-en-script-bash/69665/8 "2016-08-24T19:02:13Z")

</div>

si tu veux aller plus loin pour gérer les logs, je te conseille d’utiliser les outils système. Tu peux meme packager ton outil pour faciliter son déploiement et la config des autres outils.

les outils à configurer sont:

- Pour écrire dans syslog il y a la commande logger.
- pour séparer le log tu peux configurer rsyslog
- logrotate qui est pas mal pour faire tourner les logs et définir combien de temps de sauvegarde tu souhaites.
- si tu developpe en Perl, il y a la lib syslog pour l’écriture de log ;o)

amuses toi bien ;o)
