(Courriels de diversion: <apparierions@chiropracteurs-apitoieront.com> <relayant@bareme-lutin.com> <representa@alourdit-disposeraient.com> <plaisanter@accepta-degivres.com> <cotelee@insulaire-sabrer.com> <ingeniait@pharmacie-efforce.com> <empruntais@laryngee-futurs.com> <mecaniserait@inculpais-aggravations.com> <fluviale@desopilante-marieuses.com> <debrouillez@appropriee-survola.com> )


Pascal Hambourg wrote:
Guillaume Betous a écrit :
Dans le cas d'un script shell faisant appel à des programmes génériques comme grep, sed, awk... où le résultat d'une commande doit être lu plusieurs fois, je ne vois pas d'autre solution que les fichiers temporaires.

Bin... les variables, non ???

machin=`commande complexe`
truc=`echo $machin | action1`
bidule=`echo $machin | action2`
etc...
Pas bête, mais il y a un problème : la mise en variable remplace les caractères de retour à la ligne par des espaces.
Pour ce qui est des variables, la solution consiste à encadrer les arguments de la commande echo par des guillemets, et par exemple positionner l'option -l si on utilise la commande xargs (attention: un appel par ligne)

% machin="a b
c d"
% echo $machin
a b c d
% echo "$machin"
a b
c d
% echo "$machin" | xargs echo
a b c d
% echo "$machin" | xargs -l echo un-appel-par-ligne
un-appel-par-ligne a b
un-appel-par-ligne c d

--
Aldric

-----------------------------------------------------------------
Les listes de diffusion du CULTe - Pour une informatique libre
http://www.CULTe.org/listes/
Pour se desabonner:
mailto:linux-31-unsubscribe@CULTe.org?subject=Cliquez_sur_ENVOYER