<![CDATA[Andesi - forum / Substitution ?]> 2006-12-14T17:55:45Z FluxBB http://forum.andesi.org/viewtopic.php?id=5724 <![CDATA[Réponse à : Substitution ?]> 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.

]>
http://forum.andesi.org/profile.php?id=681 2006-12-14T17:55:45Z http://forum.andesi.org/viewtopic.php?pid=50611#p50611
<![CDATA[Réponse à : Substitution ?]> Bonne remarque : le ^ pour "début de ligne".

]>
http://forum.andesi.org/profile.php?id=681 2006-12-14T17:52:34Z http://forum.andesi.org/viewtopic.php?pid=50610#p50610
<![CDATA[Réponse à : Substitution ?]> 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" />

]>
http://forum.andesi.org/profile.php?id=440 2006-12-14T16:04:43Z http://forum.andesi.org/viewtopic.php?pid=50608#p50608
<![CDATA[Réponse à : Substitution ?]> J'ai trouvé, en partie grâce à d'autres personnes :

sed -i '/abc/s/=.*/=salut/' fichier

a+

]>
http://forum.andesi.org/profile.php?id=681 2006-12-14T14:57:19Z http://forum.andesi.org/viewtopic.php?pid=50607#p50607
<![CDATA[Réponse à : Substitution ?]> 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.

]>
http://forum.andesi.org/profile.php?id=681 2006-12-14T13:20:59Z http://forum.andesi.org/viewtopic.php?pid=50604#p50604
<![CDATA[Réponse à : Substitution ?]> 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.

]>
http://forum.andesi.org/profile.php?id=47 2006-12-14T13:11:26Z http://forum.andesi.org/viewtopic.php?pid=50603#p50603
<![CDATA[Substitution ?]> 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 ?

]>
http://forum.andesi.org/profile.php?id=681 2006-12-14T13:04:32Z http://forum.andesi.org/viewtopic.php?pid=50602#p50602