[SHELL] insérer une chaine de caractères

Résolu
je suis débutant en script shell :
comment insérer une chaine de caractères au début d'un fichier ?
merci de votre aide

3 réponses

  1. Modérateur
    Salut,

    Tu peux faire ça avec "sed" de la façon suivante :
    [jp@Mandrake tmpfs]$ cat fichier.txt
    je suis débutant en script shell :
    comment insérer une chaine de caractères au début d'un fichier ?
    merci de votre aide.
    
    [jp@Mandrake tmpfs]$ sed 1i"Bonjour à tous," fichier.txt
    Bonjour à tous,
    je suis débutant en script shell :
    comment insérer une chaine de caractères au début d'un fichier ?
    merci de votre aide.
    
    [jp@Mandrake tmpfs]$
    
    Si tu veux que le résultat soit inscrit en dur dans le fichier, rajoute l'option "-i" à la commande :
    sed -i 1i"Bonjour à tous," fichier.txt
    ;-))
    2
    1. Modérateur
      Tu peux passer par un fichier intermediaire.
      Si ton fichier s'appele truc:
      echo "truc a ecrire en debut de fichier" > temp
      cat truc >> temp
      mv temp truc
      0
      1. Modérateur
        Bonsoir,

        Voici la même chose en perl (ligne de commande).

        Donc la on ajoute au début de fichier "Bonjour à tous," et dans le même temps on fait une sauvegarde de fichier (fichier.txt.orig).
        [lamitest@localhost bin]$ perl -pi.orig -e 'print "Bonjour à tous,\n" unless $.>1' fichier.txt
        [lamitest@localhost bin]$ cat fichier.txt
        Bonjour à tous,
        je suis débutant en script shell :
        comment insérer une chaine de caractères au début d'un fichier ?
        merci de votre aide
        
        [lamitest@localhost bin]$ cat fichier.txt.orig
        je suis débutant en script shell :
        comment insérer une chaine de caractères au début d'un fichier ?
        merci de votre aide
        
        [lamitest@localhost bin]$
        0