substitution de caractères... [bash] - Programmation
Marsh Posté le 27-06-2001 à 10:51:42
 
 
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" 
Marsh Posté le 27-06-2001 à 12:42:08
ok m'sieur, merci m'sieur  
 
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...) 
 
  
   
 
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).
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..."