SHELL

Locke Messages postés 43 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
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. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Regarde du côté de "sed"
    man sed et l'option "-i"
    0
  2. Locke Messages postés 43 Statut Membre 10
     
    Merci je vais essayer ca tout de suite
    0
  3. Locke Messages postés 43 Statut Membre 10
     
    je n'ai pas reussi a faire ce que je voulais..
    en fait j'ai pastrpocompris comment fonctionnait sed..
    0
  4. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Locke Messages postés 43 Statut Membre 10
     
    ca ne marche pas avec des variables..c'est normal?
    0
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  8. Locke Messages postés 43 Statut Membre 10
     
    merci beaucoup c'est exactement ce qu'il me fallait :)
    @+
    0
    1. locke
       
      J'aurais aussi aimé savoir si c'etais possible(avec sed ou autre ) de supprimer une partie d'une ligne
      Merci
      0
      1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > locke
         
        Salut,

        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