Bonjour Charles, Simple et clair. Merci cordialement Rq : parce que TRUC contient des /, j'ai été obligé de prendre | au lieu de / comme séparateur de sed; sinon la commande plante.
----- Mail original ----- De: "Charles Plessy" <[email protected]> À: "Liste Debian" <[email protected]> Envoyé: Vendredi 5 Novembre 2021 01:42:48 Objet: Re: Récupérer le résultat d'une commande sed dans une variable ou un fichier : problème... Le Fri, Nov 05, 2021 at 12:31:13AM +0100, [email protected] a écrit : > > Comment expliquer que la commande prend un fichier comme argument : > sed '/^abc\|^$/! { p; s|^| -> '"${DOMAIN}"'|g }' monfichier #SUCCES > > mais refuse de prendre la valeur d'une variable ? > sed '/^abc\|^$/! { p; s|^| -> '"${DOMAIN}"'|g }' "$TRUC" #ECHEC Bonjour Roger, c'est comme ça que sed (et beaucoup d'autres outils) a été conçu: opérer sur le contenu d'un fichier dont le nom est passé en argument, ou alors sur un flux passant par l'entrée standard. echo 'toto' | sed 's/o/a/g' # renvoie tata echo 'toto' > monfichier sed 's/o/a/g' monfichier # renvoie tata TRUC=monfichier sed 's/o/a/g' "$TRUC" # renvoie tata La variable $TRUC est remplacée par sa valeur avant que sed ne soit executé. La commande executée avec monfichier ou $TRUC est donc exactement la même. Bonne journée -- Charles Plessy Nagahama, Yomitan, Okinawa, Japan Debian Med packaging team http://www.debian.org/devel/debian-med Tooting from work, https://mastodon.technology/@charles_plessy Tooting from home, https://framapiaf.org/@charles_plessy

