Shell

mariam1990 Messages postés 31 Statut Membre -  
mariam1990 Messages postés 31 Statut Membre -
salut tout le monde :)

je travail avec ksh.

j'utilise la commande sed pour modifier des expression dans des fichiers

par exemple:

sed 's/motif1/motif2/'

je veux substituer le motif1 par le motif2

le motif1 : . * gh
le motif2 : / . mari

merci de me répondre

4 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    jp@MDK:~/tmpfs ssh$ cat myriam
    je veux substituer le motif1 par le motif2
    
    le motif1 : . * gh
    le motif2 : / . mari
    
    merci de me répondre
    
    jp@MDK:~/tmpfs ssh$ sed 's#\. \* gh#/ \. mari#' myriam
    je veux substituer le motif1 par le motif2
    
    le motif1 : / . mari
    le motif2 : / . mari
    
    merci de me répondre


    Ou :
    jp@MDK:~/tmpfs ssh$ sed 's#\(\. \)\* gh#/ \1mari#' myriam
    je veux substituer le motif1 par le motif2
    
    le motif1 : / . mari
    le motif2 : / . mari
    
    merci de me répondre
    
    jp@MDK:~/tmpfs ssh$


    ;-))
    0
  2. mariam1990 Messages postés 31 Statut Membre 1
     
    merci pour ta réponse jipyci :)))

    si j'ai bien compris
    # sert à délimiter expression régulier
    l'anti slash \ : pour différencier entre ce qui dans les expressions et les caractére spéciaux du langage ksh

    c'est ça ??
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      # sert à délimiter expression régulier
      Oui, dans la mesure où celui par défaut (/) est présent dans le motif de recherche et de remplacement. On aurait pu aussi garder le "/" et échapper ceux des motifs...


      l'anti slash \ : pour différencier entre ce qui dans les expressions et les caractére spéciaux du langage ksh
      Surtout pour les différencier des caractères spéciaux utilisés dans les expressions régulières.
      0
  3. mariam1990 Messages postés 31 Statut Membre 1
     
    dans le cas du deuxième cas sed 's#\(\. \)\* gh#/ \1mari#' myriam
    le 1 fait référence à ce qui est entre parenthèse
    le deuxième cas est un peu plus difficile pour moi :(
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Oui.

      Difficile mais tu l'as bien compris pourtant ? ;-))
      0
  4. mariam1990 Messages postés 31 Statut Membre 1
     
    difficile parce que je peux pas écrire cette commande et avec ce syntaxe je suis encore débutante

    c'est grâce à toi que je parvient à comprendre

    merci jipicy pour tn aide :)
    0