[bash] substitution de caractères...

substitution de caractères... [bash] - Programmation

Marsh Posté le 27-06-2001 à 10:05:59    

lo !
 
Voila j'ai une chaine de caractères issue d'un formulaire.
dans cette chaine j'ai des "%20" comment remplacer les %20 par un "_" ?
 
exemple : hello%20world ---> hello_world


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 27-06-2001 à 10:05:59   

Reply

Marsh Posté le 27-06-2001 à 10:51:42    

:bounce:


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 27-06-2001 à 11:20:58    

un copier coller à adapter :
 
requete="nom=toto&prenom=jules&prof=on"  
 
# le filtre tr va remplacer dans la chaine $requete qu'il reçoit, tous les caractères & par ;  
 
commande=$( echo $requete | tr '&' ';')
echo $commande ---> nom=toto;prenom=jules;prof=on
eval $commande  ---> exécute le ligne de commande, donc effectue les affectations !
echo $prenom $nom  
[ $prof = "on" ] && echo "$prenom $nom  est professeur"

Reply

Marsh Posté le 27-06-2001 à 12:42:08    

ok m'sieur, merci m'sieur :)


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 27-06-2001 à 13:29:02    

J'ai un problème plus important sur le même sujet :
 
si dans mon formulaire j'entre un phrase avec des caractères accentués ou des () du type :
 
"mé ou vas ton (je sè pas)"
 
la chaine passée en paramètre est :
 
"m%E9+ou+vas+ton+%28je+s%E8+pas%29"
 
donc en faisant un tr "%E9" "é" ca marche pas car tr prend la liste de caractères et pas une chaine. Donc le résultat affiché est incohérent. Existe-t-il une commande pour substituer une chaine par une autre ?
 
(Si vous me parlez de awk, je n'arrive pas à m'en servir...)
 
 :bounce:  :bounce:


---------------
"There's not such a thing as a stupid question, only stupid people..."
Reply

Marsh Posté le 27-06-2001 à 13:57:49    

je sais pas mais la soluce doit être dans un while (longeur de la chaine à remplacer).

Reply

Marsh Posté le 27-06-2001 à 13:59:01    

sinon y'a php pour faire des trucs comme ça.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed