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


9 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!

    Nicolas , le 10 juin 2009 à 16:26
  •  

    @Nicolas : WTF, man? FUCK OFF :P

    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

    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:~$

    JChr , le 30 mars 2016 à 17:29
  •  

    Bonjour.
    Une remarque.
    Pour ajouter une ligne au début :
    echo "bonjour, ..." > fichiertmp
    cat lefichierexistant >> fichiertmp
    mv fichiertmp lefichierexistant

    non ?

    A plus.

    JP , le 7 mars 2018 à 17:39
  •  

    merci grâce à vous j'ai pu finir le tp

    Babass , le 4 février 2020 à 10:30
  •  

    @Anonyme : Ahah c'est marrant babass

    Anonyme , le 4 février 2020 à 10:34
  •  

    Bonjour,
    Je viens de faire cette commande qui fonctionne bien quand il s'agit d'un fichier .txt.
    Mais j'aurai besoin de rajouter une requète SQL au début d'un fichier .sql.
    J'ai fais le test et ça ne fonctionne pas.
    Quelqu'un à une idée pour résoudre mon problème ?

    Merci d'avance
    Alexis

    alexis , le 24 juin 2020 à 11:28
  •  

    Comment créer un fichier avec 3 ligne le tout en utilisant une seule commande!!?

    Tal , le 5 mars 2021 à 00:12

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