Ajouter une ligne au début ou à la fin d'un fichier texte sous Linux


Crayon
Cet article explique comment insérer une chaîne de caractères au début ou à la fin d'un fichier texte. Cette astuce sera particulièrement utile lors d'un développement de script shell par exemple.

1. Ajouter une ligne en début de fichier

Pour insérer une ligne au début d'un fichier, il faudra utiliser la commande sed. Voici un exemple d'utilisation :

$ cat test.txt
ligne2
$ sed -i '1iLigne1' test.txt
$ cat test.txt
ligne1
ligne2

On notera l'utilisation du code 1i au début de la chaîne à insérer. Le chiffre 1 indique à sed d'insérer cette phrase sur la première ligne.

2. Ajouter une ligne en fin de fichier

Ajouter une ligne à la fin d'un fichier est une opération beaucoup plus simple sous Linux. Il suffit d'utiliser l'opérateur ">>" pour réaliser ceci.

Voici un exemple d'utilisation :

$ cat test.txt
ligne1
$ echo "ligne2" >> test.txt
$ cat test.txt
ligne1
ligne2


4 Commentaires pour "Ajouter une ligne au début ou à la fin d'un fichier texte sous Linux"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    C'est terrible ton site, toujour aussi intereessant!

    RépondreRépondre
    Nicolas , le 10 juin 2009 à 16:26
  •  

    @Nicolas : WTF, man? FUCK OFF :P

    RépondreRépondre
    Anonyme , le 21 novembre 2013 à 15:01
  •  

    moi j'ai une question....

    j'ai un fichier:
    #!/bin/sh

    case $1 in
    config)
    cat <<'EOM'
    graph_title Temperature
    graph_vlabel Temperature
    temperature.label temperature
    EOM
    exit 0;;
    esac

    printf "temperature.value "
    TEMP=`cat /sys/bus/w1/devices/*/w1_slave | grep t= | sed s/.*t=//`

    je veux ajouter cette ligne la fin de mon fichier:
    echo "scale=2; $TEMP / 1000" | bc
    avec un echo "echo "scale=2; $TEMP / 1000" | bc"
    cela ne fonctionne pas avez vous d'autre solution peu etre avec awk ou sed

    merci d'avance

    RépondreRépondre
    david , le 5 janvier 2016 à 14:51
  •  

    un peu tard mais :

    echo 'echo "scale=2; $TEMP / 1000" | bc' >> lefichier.ext

    Ce qui donne :

    user56@makeitgood:~$ echo titi > lefichier.txt
    user56@makeitgood:~$ echo 'echo "scale=2; $TEMP / 1000" | bc' >> lefichier.txt
    user56@makeitgood:~$ cat lefichier.txt
    titi
    echo "scale=2; $TEMP / 1000" | bc
    user56@makeitgood:~$

    class="yarr">RépondreRépondre

    JChr , le 30 mars 2016 à 17:29
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum