Coup de main sed

Résolu
gloubit -  
 gloubit -
Bonjour,

J'ai des lignes à modifier dans des fichiers.

"parametre1"= "84{}5$bMwd\#EfXUk"


Je souhaite modifier la valeur entre les seconds guillemets (84{}5$bMwd\#EfXUk)

Et j'en suis là

find fichier -type f -exec sed -i "s/\(\"parametre1"\)= \"*\"\,/\1: \"$newvalue\"\,/" {} \;


Et malheureusement ça ne fonctionne pas et je ne comprends pas pourquoi. Une idée ?

1 réponse

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    L'important c'est les quotes ;-))

    $ echo $var
    "parametre1"= "84{}5$bMwd\#EfXUk"
    
    $ echo $new_var
    "XXXXXXXXXX"
    
    $ echo $var |sed 's/"[^"]*"/'"$new_var"'/2'
    "parametre1"= "XXXXXXXXXX"
    
    $

    ;-))
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      On va la faire plus simple et plus épuré ;-\

      $ echo $new_var
      XXXXXXXXXX
      
      $ echo $var |sed 's/[^"]*/'${new_var}'/4'
      "parametre1"= "XXXXXXXXXX"
      
      $
      0
    2. gloubit
       
      Bonjour

      Ok mais en fait j'ai ceci :

      $ echo $var 
      "parametre1"= "84{}5$bMwd\#EfXUk" 
      "parametre2"= "fhkdfd\grg"
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      $ echo "$var"
      "parametre1"= "84{}5$bMwd\#EfXUk" 
      "parametre2"= "fhkdfd\grg"
      
      $ echo "$var" |sed '/parametre1/ s/[^"]*/'${new_var}'/4'
      "parametre1"= "XXXXXXXXXX" 
      "parametre2"= "fhkdfd\grg"
      
      $
      0
    4. gloubit
       
      C'est ok, mille merci zipe :-)
      0