Pages : 1
#1 Le 20/11/2019, à 18:40
- JFM2000
sed et astérisques
Il y a une bizarrerie dans le comportement de sed, expliquée ci-dessous.
quelqu'un peut-i me dire pourquoi ?
Pour créer cette bizarrerie :
1/ enregistrer le fichier texte suivant (c'est un exemple) dans fich :
fax-no: +49 9831 505-3
abuse-mailbox: abuse@hetzner.de
remarks: *************************************************
remarks: * For spam/abuse/security issues please contact *
2/ exécuter en ligne de commande :
echo $(sed -n 4p fich)
Avec mon linux, le résultat est surprenant : les astérisques sont remplacés par le listing du répertoire !!
Hors ligne
#2 Le 20/11/2019, à 18:49
- Watael
Re : sed et astérisques
salut,
ce n'est pas le comportement de sed, c'est celui du shell.
il est inutile de echo une substitution de commandes
et, UMQ!
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#3 Le 20/11/2019, à 19:04
- pingouinux
Re : sed et astérisques
Bonsoir,
C'est en effet comme si tu faisais :
echo remarks: * For spam/abuse/security issues please contact *
Les astérisques sont alors remplacés.
Tu as deux façons d'obtenir ce que tu veux :
1) Mauvaise méthode, comme l'explique Watael
echo "$(sed -n 4p fich)"
2) Bonne méthode
sed -n 4p fich
Hors ligne
#4 Le 20/11/2019, à 19:09
- JFM2000
Re : sed et astérisques
Vous êtes très forts !!
Je n'aurais jamais pu deviner une chose pareille.
Merci
(je n'ai plus qu'à réécrire tous mes scripts !!)
Hors ligne
#5 Le 20/11/2019, à 19:27
- JFM2000
Re : sed et astérisques
Ceci dit, je ne parviens pas à mettre le résultat de sed -n 4p fich dans une variable. (mais seulement dans un fichier, que je peux, lui, afficher correctement)
Pouvez vous encore m'aider ?
Merci !
Hors ligne
#6 Le 20/11/2019, à 19:40
- JFM2000
Re : sed et astérisques
JE dois passer à côté de qqch de fondamental, car je ne comprends pas le pourquoi de ces différences (OK / NOK ?)
echo "aze*eza" > fich1 ; cat fich1 #OK
a=$(cat fich1) ; echo $a #OK
sed -n 4p fich > fich2 ; cat fich2 #OK
a=$(cat fich2) ; echo $a #NOK!
(pour mémoire, fich est un fichier texte donné comme exemple :
fax-no: +49 9831 505-3
abuse-mailbox: abuse@hetzner.de
remarks: *************************************************
remarks: * For spam/abuse/security issues please contact *
)
Hors ligne
#7 Le 20/11/2019, à 19:43
- Watael
Re : sed et astérisques
j'ai dit : UMQ!!!!!
edit:
ce qui en stfw ne retourne pas grand-chose.
UMQ = Use More Quotes!
Dernière modification par Watael (Le 20/11/2019, à 19:45)
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#8 Le 20/11/2019, à 19:44
- Zakhar
Re : sed et astérisques
Tu as lu ça : https://www.gnu.org/software/bash/manua … sions.html
Ça explique bien des choses !
Attention, certains sont des "bashisms" donc si tu veux écrire des scripts propres et compatibles, à éviter (process substitution par exemple).
Dernière modification par Zakhar (Le 20/11/2019, à 19:47)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#9 Le 20/11/2019, à 19:45
- pingouinux
Re : sed et astérisques
Même principe :
a=$(cat fich2) ; echo "$a"
a=$(sed -n 4p fich); echo "$a"
Dernière modification par pingouinux (Le 20/11/2019, à 19:46)
Hors ligne
Pages : 1