SHELL

Comment on peut faire pour remplacer un bout de fichier a l'aide d'un script shell?

du genre : `grep $nom titi|cut -d ':' -f1`=$nouveaunom..
merci

7 réponses

  1. Modérateur
    Salut,

    Regarde du côté de "sed"
    man sed et l'option "-i"
    0
    1. Merci je vais essayer ca tout de suite
      0
      1. je n'ai pas reussi a faire ce que je voulais..
        en fait j'ai pastrpocompris comment fonctionnait sed..
        0
        1. Modérateur
          Re-

          Voilà un exemple : dans le texte contenu dans le fichier "fichier.txt", remplacer le mot "fichier" par le mot "code".
          [jp@Mandrake tmpfs]$ cat fichier.txt
          Bonjour,
          
          Comment on peut faire pour remplacer un bout de fichier a l'aide d'un script shell?
          
          Merci
          
          [jp@Mandrake tmpfs]$ sed -i 's/fichier/code/' fichier.txt
          
          [jp@Mandrake tmpfs]$ cat fichier.txt
          Bonjour,
          
          Comment on peut faire pour remplacer un bout de code a l'aide d'un script shell?
          
          Merci
          
          [jp@Mandrake tmpfs]$
          Voilà ;-))
          0
          1. ca ne marche pas avec des variables..c'est normal?
            0
            1. Modérateur
              Colle un exemple de ce que tu veux faire, on avancera plus vite ;-))

              Mais pour que les variables soient prisent en compte, il faut les exclure des "quotes simples " (' ') qui font partie de la syntaxe de "sed".
              Autrement dit la syntaxe doit ressembler à ça :
              [jp@Mandrake tmpfs]$ VAR1=fichier
              
              [jp@Mandrake tmpfs]$ echo $VAR1
              fichier
              
              [jp@Mandrake tmpfs]$ cat fichier.txt
              Bonjour,
              
              Comment on peut faire pour remplacer un bout de code a l'aide d'un script shell?
              
              Merci
              
              [jp@Mandrake tmpfs]$ sed  's/code/'$VAR1'/' fichier.txt
              Bonjour,
              
              Comment on peut faire pour remplacer un bout de fichier a l'aide d'un script shell?
              
              Merci
              [jp@Mandrake tmpfs]$
              Ou entouré la syntaxe de "sed" par des guillemets (double-quotes) :
              [jp@Mandrake tmpfs]$ sed  "s/code/$VAR1/" fichier.txt
              
              Bonjour,
              
              Comment on peut faire pour remplacer un bout de fichier a l'aide d'un script shell?
              
              Merci
              [jp@Mandrake tmpfs]$
              ;-))
              0
              1. merci beaucoup c'est exactement ce qu'il me fallait :)
                @+
                0
                1. J'aurais aussi aimé savoir si c'etais possible(avec sed ou autre ) de supprimer une partie d'une ligne
                  Merci
                  0
                2. Modérateur
                  @lockeSalut,

                  oui c'est possible
                  J'ai supprimé (avec sed ou autre)
                  [lamitest@localhost ~]$ cat vider.txt
                  Ajouté par locke (05/01/2006 à 23:50 GMT+1)
                  
                  J'aurais aussi aimé savoir si c'etais possible(avec sed ou autre ) de
                  supprimer une partie d'une ligne
                  Merci
                  
                  
                  [lamitest@localhost ~]$ perl -pi -e 's/(.*)\([\w\s]+\)(.*)/$1$2/' vider.txt
                  [lamitest@localhost ~]$ cat vider.txt
                  Ajouté par locke (05/01/2006 à 23:50 GMT+1)
                  
                  J'aurais aussi aimé savoir si c'etais possible de
                  supprimer une partie d'une ligne
                  Merci
                  
                  
                  [lamitest@localhost ~]$
                  
                  0