[gull] AWK: associative array

sneaky56 at gmx.net sneaky56 at gmx.net
Tue Dec 30 21:35:01 CET 2003


pierre maitre <maitre at cdg.ch> writes:

> Curieusement, ça marche pour la première attribution et ensuite je
> n'arrive pas à ré-attribuer une nouvelle valeur à "champ[nom]" lorsque
> "nom" change à la prochaine itération de la boucle.

En essayant d'effacer l'array ("delete champ") avant de le reutiliser?
(avec qques modifications mineures du scripts (y compris RS et FS pour
que ça passe correctemnent chez moi), le reste n'étant que cosmétique
pour moi):

======================================================================
BEGIN{
#RS = "^L^M";
RS = "\014";
#FS = "^M";
FS = "\012"
OFS = "\t";
}

{
print "** Nouvelle entrée (NF=" NF "): **";
delete champ;
for (i=1; i<= NF; i++)
         {
         split($i,array,":  ");
         nom = array[1];
         val = array[2];
         champ[nom]=val;
         print i, nom, champ[nom];
         print "AAA", champ["Type"];
         print "BBB", champ["LastName"];
         print "CCC", champ["FirstName"];
         print "DDD", champ["CompanyName"];
         print "EEE", champ["OfficeStreetAddress"];
         print "FFF", champ["OfficeCity"];
         print "GGG", champ["City"];
	print "____________________";
         }
print "====================";
}
======================================================================

donne le résultat suivant attaché.


      tom

-------------- next part --------------
** Nouvelle entrée (NF=18): **
1	Type	Person
AAA	Person
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
2	OrgTable	E0
AAA	Person
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
3	LastName	MEYER
AAA	Person
BBB	MEYER
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
4	FirstName	Abel
AAA	Person
BBB	MEYER
CCC	Abel
DDD	
EEE	
FFF	
GGG	
____________________
5	FullName	Abel MEYER
AAA	Person
BBB	MEYER
CCC	Abel
DDD	
EEE	
FFF	
GGG	
____________________
6	JobTitle	Monsieur
AAA	Person
BBB	MEYER
CCC	Abel
DDD	
EEE	
FFF	
GGG	
____________________
7	CompanyName	Ecole secondaire 
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	
FFF	
GGG	
____________________
8	OfficeStreetAddress	En Forestaux
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	
GGG	
____________________
9	OfficeCity	Tours
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	
____________________
10	BusinessAddress	En Forestaux Tours, 
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	
____________________
11	StreetAddress	En Forestaux
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	
____________________
12	City	Tours
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	Tours
____________________
13	HomeAddress	En Forestaux Tours, 
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	Tours
____________________
14	Principal	CN=Pierre Bolomey/OU=DFJ/O=admin-TX
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	Tours
____________________
15	AssignedTo	CN=Pierre Bolomey/OU=DFJ/O=admin-TX
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	Tours
____________________
16	$UpdatedBy	CN=Pierre Bolomey/OU=DFJ/O=admin-TX
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	Tours
____________________
17		
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	Tours
____________________
18		
AAA	Person
BBB	MEYER
CCC	Abel
DDD	Ecole secondaire 
EEE	En Forestaux
FFF	Tours
GGG	Tours
____________________
====================
** Nouvelle entrée (NF=15): **
1		
AAA	
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
2	Type	Person
AAA	Person
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
3	ExcludeFromView	D
AAA	Person
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
4	$PublicAccess	1
AAA	Person
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
5	Categories	Professionnel
AAA	Person
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
6	OrgTable	E0
AAA	Person
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
7	CompanyName	Académie de Blois - Rectorat
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	
GGG	
____________________
8	OfficeCity	Blois
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	Blois
GGG	
____________________
9	BusinessAddress	Blois, 
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	Blois
GGG	
____________________
10	OfficePhoneNumber	0033  41 xx xx 70
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	Blois
GGG	
____________________
11	Principal	CN=Pierre Bolomey/OU=DFJ/O=admin-TX
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	Blois
GGG	
____________________
12	AssignedTo	CN=Pierre Bolomey/OU=DFJ/O=admin-TX
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	Blois
GGG	
____________________
13	$UpdatedBy	CN=Pierre Bolomey/OU=DFJ/O=admin-TX
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	Blois
GGG	
____________________
14		
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	Blois
GGG	
____________________
15		
AAA	Person
BBB	
CCC	
DDD	Académie de Blois - Rectorat
EEE	
FFF	Blois
GGG	
____________________
====================
** Nouvelle entrée (NF=2): **
1		
AAA	
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
2		
AAA	
BBB	
CCC	
DDD	
EEE	
FFF	
GGG	
____________________
====================
-------------- next part --------------

-- 
as seen in a signature:
       "In an open world without walls and fences,
        who needs Gates and windows?"


More information about the gull mailing list