Script shell

LO2513 -  
dubcek Messages postés 19021 Statut Contributeur -
Bonjour,

j'ai un tableau avec des valeurs séparées par des point-virgules et j'aimerai changer toutes les valeurs de la deuxiéme et cinquième colonne par des valeurs contenues dans un tableau de correspondance,

ne connaissant rien en programmation unix, merci pour votre aide,

Cordialement,

LO
A voir également:

4 réponses

dubcek Messages postés 19021 Statut Contributeur 5 637
 
c'est quoi/comment un tableau de correspondance ?
0
lo2513
 
Le but du script est le suivant:

Transformer le fichier suivant
NOM_A;valeur_x1;NOM_B;valeur_x2
NOM_A;valeur_x2;NOM_B;valeur_x3
NOM_A;valeur_x1;NOM_B;valeur_x3

en un autre modifié :

NOM_A;valeur_y1;NOM_B;valeur_y2
NOM_A;valeur_y2;NOM_B;valeur_y3
NOM_A;valeur_y1;NOM_B;valeur_y3

les correspondances étant dans un tableau annexe du type :

x1;y1
x2;y2
x3;y3

c'est à dire remplacer les valeurs x par celle qui correspond en y

D'avance merci,
0
Carri€ Messages postés 41 Statut Membre 29
 
salut!
essai avec la commande regexp ("man regexp") je crois qu'on peut l'utiliser aisément pour modifier des valeurs.Désolé mais je ne pourrai pas t'aider d'avantage. J'ai un collègue qui avait fais la même chose et je crois bien que c'est cette comande qu'il a utilisé.
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
Soit f1.txt
NOM_A;valeur_x1;NOM_B;valeur_x2
NOM_A;valeur_x2;NOM_B;valeur_x3
NOM_A;valeur_x1;NOM_B;valeur_x3

Soit f2.txt
x1;y1
x2;y2
x3;y3

awk 'BEGIN{FS=";";while("cat f2.txt"|getline)x[$1]=$2} ; {FS="[_;]" ; $4=x[$4] ; $8=x[$8] ; print $0}' < f1.txt
0