Sed et espace

Résolu
Bonjour,

Je n'y connais pas grand chose en langage script.
Je souhaiterai avec la commande sed ecrire un mot dans un fichier à une ligne bien précise. Jusque là j'y arrive, mais j'ai besoin de mettre un certains nombre d'espace devant le mot. Il y a t'il des caractere speciaux a mettre dans la commande ?
La commande shell est appelé a partir d"un programm fortran avec la commande "call system"

Voici le bout de programme
command= 'sed -i "8i mot" temp '
print*, 'command =',command
call system(command)

Merci de votre aide

3 réponses

  1. il me faut écrire le "mot " à partir de la colonne 32 pour etre exacte
    1. Contributeur
      Salut,

      La syntaxe originale de l'insertion avec la commande
      i
      voulait que cette instruction soit suivie d'un anti-slash. Avec Gnu-sed cette syntaxe s'est un peu perdue. Donc à essayer avec ton programme...

      Chez moi ça marche :

      $ cat plop
      blabla
      bla bla bla
      bli bli
      bliblibli

      $ sed '3i\ mot' plop # Il y a 4 espaces après l'anti-slash
      blabla
      bla bla bla
      mot
      bli bli
      bliblibli

      $ sed '3i\\tmot' plop # Ici j'insère une tabulation (\t)
      blabla
      bla bla bla
      mot
      bli bli
      bliblibli

      1. Merci ça marche impeccable,

        J'ai une autre question, dans ton exemple tu ne mets pas le -i derriere la commande sed. Quand je l'enleve ce -i dans ma commande ca ne fonctionne plus. Tu aurais une explication ?

        Merci encore pour ton aide
        1. Contributeur
          L'option
          -i
          (in-place, à ne pas confondre avec la commande
          i
          d'insertion) sert comme son nom l'indique à modifier le fichier d'origine.
          Dans mon exemple je ne l'ai pas mis histoire que la sortie à l'écran soit conforme à tes attentes, par contre le fichier d'origine reste inchangé.
          Pour une modification dudit fichier il faut obligatoirement utiliser l'option
          -i
          .
          Une bonne habitude à prendre c'est aussi de rajouter à cette option un suffixe (
          -i.bak
          par exemple) qui crée une sauvegarde au cas ou...