Rechercher : dans
Par :

[shell] affectation de variable

Dernière réponse le 12 nov 2008 à 19:25:14 tlep, le 12 nov 2008 à 11:58:11 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un fichier comme suit :

A,toto
B,tata
Z,titi

Je voudrais le parser de manière à affecter des variables SHELL comme suit:

A="toto"
B="tata"
Z="titi"

Le souci, c'est qu'en parsant le fichier, je peux récupérer des valeurs genre "A", "toto", etc... Or moi je voudrais affecter à une variable "A" la valeur "toto", "B" la valeur "tata", etc...

J'ignore si c'est possible ?

Merci :-)

Configuration: Windows XP
Firefox 3.0.3

Meilleures réponses pour « [shell] affectation de variable » dans :
[Shell] Tester une variable numérique Voir Tester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
Le remplacement de variables en shell Bash Voir=Le remplacement de variables= Introduction Il peut s'avérer utile de s'assurer qu'une variable est bien définie avant de procéder à son remplacement, ou tout simplement de s'assurer que celle-ci n'est pas vide, et dans ce cas de l'initialiser avec...
Guide d'utilisation du Shell pour débutant VoirSHELL BASH - GUIDE D'UTILISATION - Niveau Débutant Introduction Appel aux membres CCM II. C'est quoi le shell ? III. Comment accéder à la ligne de commande IV. Les consoles virtuelles Exemple : Accéder à la console 3 depuis l'interface...
Télécharger CDBF Shell VoirCertains fichiers de votre ordinateur sont dans un format appelé DBF. Ce sont généralement des bases de données issues de DBase. Il y a par exemple les fichiers liés à Outlook Express qui sont dans ce format. CDBF Shell est une application vous...
Linux - Le shell VoirIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire le système...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...

1

alx13, le 12 nov 2008 à 12:18:21

Si tes données sont bien ligne à ligne
un simple remplacement de ta virgule par = devrait suffire.

sed 's/,/=/g' ton_fichier

Répondre à alx13

2

tlep, le 12 nov 2008 à 12:25:26

Oui, mais çà ne va pas affecter à la variable shell "A" la valeur "toto", çà va afficher le résultat :-()

Répondre à tlep

3

tlep, le 12 nov 2008 à 12:33:09

En fait j'ai trouvé:

while read ligne;do
eval $(echo $ligne|cut -d"," -f1)=$(echo $ligne|cut -d"," -f2)
done < mon_fichier

Répondre à tlep

4

alx13, le 12 nov 2008 à 12:34:17

Désolé je pensais que tu voulais les changer dans ton script.

puis réexecuter le script modifier et là...
tes variables seraient alimentées, un peu bourrin comme solution :p

Répondre à alx13

5

 jipicy, le 12 nov 2008 à 19:25:14

Salut,

[tmpfs]$ cat fich
A,toto
B,tata
Z,titi

[tmpfs]$ cat foo.sh
#! /bin/bash

eval $(sed 's/,/=\"/;s/$/\"/' fich)

echo "A = $A"
echo "B = $B"
echo "Z = $Z"

[tmpfs]$ ./foo.sh
A = toto
B = tata
Z = titi

[tmpfs]$
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy
Collection CommentÇaMarche.net