Bonjour,
C’est normal avec l’affichage d’une variable contenant des LF. Ce serait la même chose avec un : A=$(ls)
Une piste tient dans la façon que vous utilisez pour afficher le résultat de la variable. En effet, un echo ${A} comme vous le faite n’affichera pas la même chose qu’un : echo "${A}"
Faite l’essai, enclore une variable avec des double-guillemets est souvent non seulement plus clair et ne provoque pas une interprétation supplémentaire par le BASH.
En plus l’utilisation des accolades est aussi un moyen d’éviter les ambiguïtés : ${A}B n’est pas forcément la même chose que : ou $AB
Bonjour,
Dans un script (bash 5.0.3(1), debian 10), je tente de récupérer le résultat d'une commande sed dans une variable.
sed '/^abc\|^$/! { p; s|^| -> '$DOMAIN'|g }' mon_fichier
Dans la commande, le séparateur de la substitution est | car avec / il y a un conflit avec le / de la cariable DOMAIN
J'ai tenté diverses expressions, comme par exemple dans une variable : RES=$(sed '/^abc\|^$/! { p; s|^| -> '$DOMAIN'|g }')
ou en écrivant dans un fichier, avec une subsitution de commande ou sans :
$(sed '/^abc\|^$/! { p; s|^| -> '"$DOMAIN"'|g }' "$RES" > mon_fichier)
ou sans :
$(sed '/^abc\|^$/! { p; s|^| -> '"$DOMAIN"'|g }' "$RES" > mon_fichier)
Dans le script, je n'arrive pas du tout à obtenir le résultat escompté, tant via la variable que par le fichier : RIEN, même pas le résultat aplati/sans séparateur que j'obtiens en ligne de commande ci-dessous.
En ligne de commande, j'obtiens exactement le résultat escompté sur stdout ou dans le fichier.
foo bar baz truc TOUTEFOIS, il y a un indice pour la question posée. Quand je fais : echo $RES
J'obtiens le résultat aplati, sans séparateur : foo bar baz truc machin
J'ai écumé de nombreux forums où ce problème est soulevé. Sans trouver la clef.
J'ai tenté de prende une valeur de DOMAIN sans / pour une _expression_ de sed avec des / au lieu de | : idem.
Quel mystère y a-t-il qui m'échapperait donc ? Je me dis qu'il y a une option de sed qui m'échappe ou une obscure histoire de contexte bash.
Merci pour vos lumières/bougies/loupiotes !
Cordialement Roger
-- « On ne peut pas pousser à fond l'éducation politique et l'éducation tout court de masses sans l'accompagner d'un développement économique, culturel et social parallèle. » Romain Gary - "Les racines du ciel" |\ _,,,---,,_ /,`.-'`' -. ;-;;,_ |,4- ) )-,_. ,\ ( `'-' '---''(_/--' `-'\_) πr
perl -e '$_=q#: 3|\ 5_,3-3,2_: 3/,`.'"'"'`'"'"' 5-. ;-;;,_: |,A- ) )-,_. ,\ ( `'"'"'-'"'"': '"'"'-3'"'"'2(_/--'"'"' `-'"'"'\_): 24πr::#;y#:#\n#;s#(\D)(\d+)#$1x$2#ge;print' - --> Ce message n’engage que son auteur <--
|