bash vs mysql - Linux et OS Alternatifs
Marsh Posté le 26-06-2004 à 11:54:50
essaie de changer le séparateur de colonnes avant de mettre temp dans res. avec tr par exemple. et après joue sur le IFS. ca peut etre un debut d'idée
Marsh Posté le 26-06-2004 à 13:04:51
salut Zaib3k et merci pour votre aide,
j'ai pas trop bien compris le truc, surtout l'IFS
Marsh Posté le 26-06-2004 à 13:11:53
IFS est le séparateur de champs. par defaut il vaut " " et donc il peut etre rempalcé par autre chose. : par exemple. a partir de la, une champs = " " serait pris en compte.
Copie/colle une ligne type ici pour voir.
Marsh Posté le 26-06-2004 à 13:19:52
IFS=":"
echo "blabla toto lala" | tr " " ":" | sed 's/::/: /g' |
renvera blabla:toto: :lala et la tout pourra faire ta sauce si IFS est a :
je suis pas super clair mais l'idée est la
Marsh Posté le 26-06-2004 à 11:26:18
Bonjour,
J'essaie de requeter ma base de données MySQL je fait :
#extraction des donnees de la table modif
temp=`mysql -h localhost -u $user -p$pass -D$db -B -N -e "SELECT * FROM modif WHERE id=$1"`
#importer le res dans un tablo
res=($temp)
puis pour consulter les valeurs de chaque colone j'utilise
echo ${res[0]}
#ou 0 est l'indice de la premiere colonne de la ligne selectionée
jusqu'a la tous marche parfait, maintenant j'ai une table qui peut contenir des colonnes a valeur vide (NULL), alors quand je fait echo ${res[5]} où 5 l'indice de la colonne qui contient un element de valeur NULL (vide) l'echo m'affiche la valeur de la premiere colonne qui vient aprés la cinquiéme et qu'a une valeur NON NULLE.
exemple :
colonne1='valeur1' colonne2='valeur2' colonne3='valeur3' colonne4='valeur4' colonne5='' colonne6='' colonne7='valeur7'
voila ce que la variabke $temp doit contenir :
$temp=valeur1 valeur2 valeur3 valeur4 valeur7
et donc ${res[5]} me renvoit valeur7 puisque j'ai deux valeurs NULLES et que lorsque j'importe une chaine dans un tableau bash considere que chaque espace est un separateur de colonne.
comment je pourrais depasser ce probléme ?
merci d'avance