Vous n'êtes pas identifié(e).
Pages : 1
Dans un fichier de configuration, j'aimerais remplacer par "salut" les valeurs de toutes les lignes commençant par "abc". Exemple :
chose=x
abc truc=y
abc bidule=z
doit devenir :
chose=x
abc truc=salut
abc bidule=salut
J'ai essayé ceci :
ed fichier <<- EOF
/abc
s/=.*/=salut
wq
EOF
mais ça ne remplace que la première ligne trouvée. Comment faire pour que ça agisse dans tout le fichier ?
Hors ligne
Et avec ce qui suit ?
ed fichier <<- EOF
/abc
s/=.*/=salut/g
wq
EOF
LeDub qui va finir par se faire prendre à consulter Andesi à son travail.
« Ne doutez pas qu'un petit nombre de personnes déterminées puisse changer le monde. En fait, ça a même toujours marché comme ça.»
Margaret Mead
---
VeoSearch est un moteur de recherche solidaire qui permet de financer des projets associatifs de développement durable par vos recherches Internet. Utilisez-le !!!
Hors ligne
Sans le "g", ça ne remplace que la première occurence dans une ligne, avec le "g" ça remplace dans la ligne complète... autrement dit, dans le cas présent, ça ne change rien.
Hors ligne
J'ai trouvé, en partie grâce à d'autres personnes :
sed -i '/abc/s/=.*/=salut/' fichier
a+
Hors ligne
Attention, ta commande va substituer les caractères situés après le signe "=" par "salut" si la ligne contient la sous-chaine "abc" (pas forcément en début de ligne)
exemple :
chose=x
abc truc=y
abc bidule=z
trucabc=w
donne
chose=x
abc truc=salut
abc bidule=salut
trucabc=salut
sed -i '/^abc/s/=.*/=salut/' fichier
donnera
chose=x
abc truc=salut
abc bidule=salut
trucabc=w
(testé sur HP-UX, donc ma commande exacte est : sed '/^abc/s/=.*/=salut/' -f fichier)
<edit cause="faute de frappe" />
Dernière modification par armen (14/12/2006 18:05:50)
"La grandeur d'un métier est peut-etre, avant tout, d'unir des hommes : il n'est qu'un luxe véritable, et c'est celui des relations humaines." Antoine de Saint-Exupéry
Hors ligne
Bonne remarque : le ^ pour "début de ligne".
Hors ligne
Sinon, le -i, c'est pour que le fichier de sortie soit le même que le fichier d'entrée. En fait, techniquement parlant, il y a quand même 2 fichiers ouverts durant le traitement, mais sed le supprime avant de quitter.
Hors ligne
Pages : 1