Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/02/2011, 12h06   #1
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
Par défaut stocker le résultat d'un sed dans une variable : erreur

salut à tous,
je souhaite remplacer les caractères antislash présents dans une variabmes par le motif 'lolo', pour cela je fait :
Code :
1
2
3
4
 
1 #!/bin/bash
2 chaine="asdfghj\ehdbehd\uedued\yyy"
3 echo "$chaine" | sed  's,\\,LOLO,g'
et cela fonctionne :
Code :
1
2
 
asdfghjLOLOehdbehdLOLOueduedLOLOyyy
,

Par contre, si je souhaite stocker le résultat de cette commande via les antiquotes dans une variable :
Code :
1
2
3
4
 
  4 var=`echo "$chaine" | sed  's,\\,LOLO,g'`
  5 
  6 echo $var
j'obtiens l'erreur :
Code :
sed: -e expression #1, char 10: unterminated `s' command
Si quelqu'un a une idée ... merci d'avance
ben
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 12h17   #2
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

Et pourquoi pas tout simplement utiliser le remplacement de paramètre du bash :

Code :
1
2
3
4
5
6
7
8
9
$ echo ${chaine}
asdfghj\ehdbehd\uedued\yyy

$ new_chaine="${chaine//\\/lolo}"

$ echo ${new_chaine}
asdfghjloloehdbehdloloueduedloloyyy

$
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 12h18   #3
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
Par défaut différence entre var=`commande` et var=$(commande) ?

je viens de tester l'écriture : $(commande) pour stocker le résultat dans une variable en lieu et place des anti-quotes : ``
voici donc la ligne qui marche :
Code :
var=$(echo "$chaine" | sed  's,\\,LOLO,g')
à la place de :
Code :
1
2
 
 var=`echo "$chaine" | sed  's,\\,LOLO,g'`
qui ne marche pas !

Voilà qui m'amène à demander la différence entre var=`commande` et var=$(commande) ?

merci d'avance,
ben
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 12h28   #4
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Re-

En fait l'ancienne syntaxe n'aime pas les anti-slashs, du moins il faut les protéger encore plus...

Code :
var=`echo "$chaine" | sed  's,\\\,LOLO,g'`
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 22/02/2011, 15h20   #5
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
ok, bon à savoir
merci à toi
à bientôt,
ben
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 15h22   #6
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
De rien
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 16h35   #7
Membre éprouvé
 
Avatar de ben.IT
 
Homme Benoît
Inscription : janvier 2009
Messages : 392
Détails du profil
Informations personnelles :
Nom : Homme Benoît
Âge : 24
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2009
Messages : 392
Points : 438
Points : 438
mais si,
j'insiste mon bon monsieur !
et tac -> tag résolu
ben
__________________
Meet the free software gang
ben.IT est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h16.


 
 
 
 
Partenaires

Hébergement Web