Bonjour,
Au-dessous, voici un ensemble d’enregistrements sous forme de fichier ‘LISTE’ (*.lst) dont je voudrais
qu’il soit chargé dans un programme ‘*.sh’ sous forme de tableau à deux dimensions. L'entête du script est : !/bin/ksh.
Les champs sont séparés par le caractère : ~ (Tilde).
Par la suite, je veux pouvoir comparer chaque élément du tableau.
J’ai vu que cela est possible avec le processeur de texte ‘awk’.
Par exemple :
NB_ENREG=`cat $FICHIER_LISTE | cut -c 1 | grep -v \# | wc -l | tr -d " "` <-- Cette instruction est correcte.
TABLEAU=`awk 'tab[$NB_ENREG,5]'` <-- Cette instruction est incorrecte.
Questions :
Comment définir ce tableau à deux dimension ?
Comment charger le tableau en tenant compte du séparateur de champ ?
Comment écrire la boucle pour la comparaison des éléments du tableau ?
Après plusieurs essais, le souci rencontrer provient de la syntaxe des commandes.
Pouvez-vous m’apporter la solution dans le cas présent ?
D’avance merci pour votre aide.
Cordiales salutations.
PS : Je ne sais pas si c'est une excuse valable, mais je viens du monde Windows et je débute dans l'environnement UNIX. Pour l'instant je galère...
Ci-dessous le fichier :
-------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 ~N1DEC.AZ.EM0PS12.ECHANGE1.L1DJOBA3~x1DJOBA3~L~CONT~CEBN ~B1DEC.AZ.EM0PS12.ECHANGE1.B1DJOBA3~x1DJOBA3~B~CONT~CEB ~D1DEC.AZ.EM0PS12.ECHANGE1.E1DJOBA3~x1DJOBA3~E~CONT~CEAN ~D1DEC.AZ.EM0PS12.ECHANGE1.F1DJOBA3~x1DJOBA3~F~CONT~CEPA ~C1DEC.AZ.EM0PS12.ECHANGE1.C1DJOBA3~x1DJOBA3~C~CONT~CEIDFP ~N1DEC.AZ.EM0PS12.ECHANGE1.H1DJOBA3~x1DJOBA3~H~CONT~CEHN ~D1DEC.AZ.EM0PS12.ECHANGE1.G1DJOBA3~x1DJOBA3~G~CONT~CEPC ~N1DEC.AZ.EM0PS29.ECHANGE1.L1DJOD09~x1DJOD09~L~PTRM_IMMB~CEBN ~B1DEC.AZ.EM0PS29.ECHANGE1.B1DJOD09~x1DJOD09~B~PTRM_IMMB~CEB ~D1DEC.AZ.EM0PS29.ECHANGE1.E1DJOD09~x1DJOD09~E~PTRM_IMMB~CEAN ~D1DEC.AZ.EM0PS29.ECHANGE1.F1DJOD09~x1DJOD09~F~PTRM_IMMB~CEPA ~C1DEC.AZ.EM0PS29.ECHANGE1.C1DJOD09~x1DJOD09~C~PTRM_IMMB~CEIDFP ~N1DEC.AZ.EM0PS29.ECHANGE1.H1DJOD09~x1DJOD09~H~PTRM_IMMB~CEHN ~D1DEC.AZ.EM0PS29.ECHANGE1.G1DJOD09~x1DJOD09~G~PTRM_IMMB~CEPC ~C11425.JdOR015RachRetrtAssrCnp003.dat~AssrCnp003~L~RACH_RETRT_ASSR_CNP~CEBN ~C12225.JdOR015RachRetrtAssrCnp003.dat~AssrCnp003~B~RACH_RETRT_ASSR_CNP~CEB ~C13335.JdOR015RachRetrtAssrCnp003.dat~AssrCnp003~E~RACH_RETRT_ASSR_CNP~CEAN ~C16485.JdOR015RachRetrtAssrCnp003.dat~AssrCnp003~F~RACH_RETRT_ASSR_CNP~CEPA ~C17515.JdOR015RachRetrtAssrCnp003.dat~AssrCnp003~C~RACH_RETRT_ASSR_CNP~CEIDFP ~C17695.JdOR015RachRetrtAssrCnp003.dat~AssrCnp003~H~RACH_RETRT_ASSR_CNP~CEHN ~C18645.JdOR015RachRetrtAssrCnp003.dat~AssrCnp003~G~RACH_RETRT_ASSR_CNP~CEPC ~L1DEC.AZ.EM0PSC1.ECHANGE1.L1DJOMCM~x1DJOMCM~L~PROC~CEBN ~B1DEC.AZ.EM0PSC1.ECHANGE1.B1DJOMCM~x1DJOMCM~B~PROC~CEB ~E1DEC.AZ.EM0PSC1.ECHANGE1.E1DJOMCM~x1DJOMCM~E~PROC~CEAN ~F1DEC.AZ.EM0PSC1.ECHANGE1.F1DJOMCM~x1DJOMCM~F~PROC~CEPA ~C1DEC.AZ.EM0PSC1.ECHANGE1.C1DJOMCM~x1DJOMCM~C~PROC~CEIDFP ~H1DEC.AZ.EM0PSC1.ECHANGE1.H1DJOMCM~x1DJOMCM~H~PROC~CEHN ~G1DEC.AZ.EM0PSC1.ECHANGE1.G1DJOMCM~x1DJOMCM~G~PROC~CEPC ~N1DEC.AZ.EM0PS94.ECHANGE1.L1DJOPA5~x1DJOPA5~L~CONV_FUSN_CPTE~CEBN ~B1DEC.AZ.EM0PS94.ECHANGE1.B1DJOPA5~x1DJOPA5~B~CONV_FUSN_CPTE~CEB ~D1DEC.AZ.EM0PS94.ECHANGE1.E1DJOPA5~x1DJOPA5~E~CONV_FUSN_CPTE~CEAN ~D1DEC.AZ.EM0PS94.ECHANGE1.F1DJOPA5~x1DJOPA5~F~CONV_FUSN_CPTE~CEPA ~C1DEC.AZ.EM0PS94.ECHANGE1.C1DJOPA5~x1DJOPA5~C~CONV_FUSN_CPTE~CEIDFP ~N1DEC.AZ.EM0PS94.ECHANGE1.H1DJOPA5~x1DJOPA5~H~CONV_FUSN_CPTE~CEHN
Partager