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..."