Coup de main sed

Résolu/Fermé
gloubit - 26 oct. 2011 à 17:50
 gloubit - 27 oct. 2011 à 10:07
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 ?
A voir également:

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
26 oct. 2011 à 18:01
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
26 oct. 2011 à 18:13
On va la faire plus simple et plus épuré ;-\

$ echo $new_var
XXXXXXXXXX

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

$
0
Bonjour

Ok mais en fait j'ai ceci :

$ echo $var 
"parametre1"= "84{}5$bMwd\#EfXUk" 
"parametre2"= "fhkdfd\grg"
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
26 oct. 2011 à 19:19
$ echo "$var"
"parametre1"= "84{}5$bMwd\#EfXUk" 
"parametre2"= "fhkdfd\grg"

$ echo "$var" |sed '/parametre1/ s/[^"]*/'${new_var}'/4'
"parametre1"= "XXXXXXXXXX" 
"parametre2"= "fhkdfd\grg"

$
0
C'est ok, mille merci zipe :-)
0