Pages : 1
#1 Le 04/03/2020, à 18:26
- soupaloignon
Un problème avec Sed
Bonjour le forum,
J'ai un problème avec Sed, que je ne comprends pas.
Dans cette portion de code, tout fonctionne bien, et la variable $QUALITE2 est bien renvoyée, que cela soit en retour console, ou dans le fichier "test", à savoir "1080HDL" (sans les guillemets)
#!/bin/bash
QUALITE=" - 1080HDL"
QUALITE2=$(echo -e $QUALITE | sed -r 's/ - //g')
echo $QUALITE2 >> test
echo $QUALITE2
Par contre quand je veux récupérer cette variable $QUALITE2 dans la ligne ci-dessous (6eme colonne) :
echo "true;$FILM;$ANNEE;$REAL_NOM ($REAL_PRENOM);$GENRE;$QUALITE2;$ACTEURS;$RESUME3" >> /home/soupaloignon/Téléchargements/"$FILM"
Cela me renvoi cette valeur : ;- 1080HDL;
Sed n'a enlevé que le 1er caractère, un espace, ce qui donne "- 1080HDL"
Avez-vous une piste, une idée, une solution ?
Merci par avance
Dernière modification par soupaloignon (Le 04/03/2020, à 18:28)
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#2 Le 04/03/2020, à 18:35
- nany
Re : Un problème avec Sed
Bonjour,
A priori, je dirais qu’il faut échapper le signe -.
QUALITE2=$(echo -e $QUALITE | sed -r 's/ \- //g')
Hors ligne
#3 Le 04/03/2020, à 18:37
- Watael
Re : Un problème avec Sed
salut,
d'abord, les variables utilisateurs ne doivent pas être tout en majuscules.
et, dans ton cas de substitution très simple, sed est inutile :
qualiT2=${qualiT/# - }
Dernière modification par Watael (Le 04/03/2020, à 18:38)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#4 Le 04/03/2020, à 18:38
- erresse
Re : Un problème avec Sed
Dans cette portion de code, tout fonctionne bien, et la variable $QUALITE2 est bien renvoyée, que cela soit en retour console, ou dans le fichier "test", à savoir "1080HDL" (sans les guillemets)
Ben non, cela n'est pas vrai...
QUALITE=" - 1080HDL"
QUALITE2=$(echo -e $QUALITE | sed -r 's/ - //g')
echo $QUALITE2
- 1080HDL
Donc la même chose que dans ta dernière commande.
Edit: Ha ben les cadors se sont déjà mobilisés... trop tard pour moi !
Dernière modification par erresse (Le 04/03/2020, à 18:39)
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#5 Le 04/03/2020, à 18:40
- soupaloignon
Re : Un problème avec Sed
Merci nany pour ta réponse, mais cela ne fonctionne pas et renvoi toujours "- 1080HDL"
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#6 Le 04/03/2020, à 18:44
- soupaloignon
Re : Un problème avec Sed
Non eresse, merci, et pas trop tard pour toi, effectivement cette commande renvoie un mauvais résultat aussi. Je creuse
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#7 Le 04/03/2020, à 18:49
- pingouinux
Re : Un problème avec Sed
Bonjour,
Essaye
QUALITE2=$(echo -e "$QUALITE" | sed -r 's/ - //g')
ou
QUALITE2=$(echo "$QUALITE" | sed -r 's/ - //g')
ou
QUALITE2=$(sed -r 's/ - //g' <<<"$QUALITE")
Hors ligne
#8 Le 04/03/2020, à 18:52
- Watael
Re : Un problème avec Sed
ou
ne pas utiliser sed pour une substitution aussi simple.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 04/03/2020, à 18:53
- erresse
Re : Un problème avec Sed
salut,
d'abord, les variables utilisateurs ne doivent pas être tout en majuscules.
et, dans ton cas de substitution très simple, sed est inutile :
qualiT2=${qualiT/# - }
Heu, Watael, pourrais-tu expliquer pourquoi tu mets ${qualiT/# - } dans ta suppression de sous-chaîne plutôt que juste ${qualiT# - } qui semble déjà faire le boulot ? Est-ce que la substitution supplémentaire sert dans un cas spécifique ?
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#10 Le 04/03/2020, à 19:01
- soupaloignon
Re : Un problème avec Sed
Merci à tous pour vos précieux retours,
Pinguinux :
QUALITE2=$(echo -e "$QUALITE" | sed -r 's/ - //g')
fonctionne nickel, j'adopte
Watael : je me fait avoir à chaque fois, je vais changer la casse de mes variables utilisateurs . Et je ne connaissais pas ce type de substitution sans sed, merci pour l'info
==> Libérez les huitres du bassin d'Arcachon <==
Hors ligne
#11 Le 04/03/2020, à 19:09
- Watael
Re : Un problème avec Sed
pourquoi tu mets ${qualiT/# - } dans ta suppression de sous-chaîne plutôt que juste ${qualiT# - }
parce que je suis parti sur une substitution.
mais en effet un suppression est encore plus simple.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
Pages : 1