Affectation de champs a des variables au sein d'une boucle FOR

Résolu
nerdzlol Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
nerdzlol Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai une liste dans un fiche de type:

machine1;sous-machine1;sous-switch1;numero1
machine2;sous-machine2;sous-switch2;numero2
machine3;sous-machine3;sous-switch3;numero3
machine4;sous-machine4;sous-switch4;numero4

Dans un script sh qui viens interroger ce fichier je mets en variable le 1er champs et une boucle for passe les instructions sur uniquement la 1ere variable (machine1)

maintenant j'ai besoin au sein de cet boucle for de mettre dans 3 autres variables le reste de la ligne en prennant le séparateur ; en compte

Seulement la boucle for mets en variable directement la colonne correspondante au lieu de prendre juste un argument de derouler tout le script avant de passer a la ligne suivante...

Merci de votre aide :)
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

$ cat plop 
machine1;sous-machine1;sous-switch1;numero1
machine2;sous-machine2;sous-switch2;numero2
machine3;sous-machine3;sous-switch3;numero3
machine4;sous-machine4;sous-switch4;numero4

$ while IFS=";" read a b c d
do
echo -e "a = ${a}\nb = ${b}\nc = ${c}\nd = ${d}\n\n"
done <plop

a = machine1
b = sous-machine1
c = sous-switch1
d = numero1


a = machine2
b = sous-machine2
c = sous-switch2
d = numero2


a = machine3
b = sous-machine3
c = sous-switch3
d = numero3


a = machine4
b = sous-machine4
c = sous-switch4
d = numero4

0
nerdzlol Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
merci ;)

j'avais trouvé aussi une solution a base de cut:

export machine1=$(echo ${ligne} |cut -d";" -f1)
export sous-machine1=$(echo ${ligne} |cut -d";" -f2)
export sous-switch1=$(echo ${ligne} |cut -d";" -f3)
export numero1=$(echo ${ligne} |cut -d";" -f4)
0