| 12
 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
 
 | #!/bin/bash 
# Le fichier passe en paramètre est suppose contenir 
		# les données des variables séparées par des ";". 
# En sortie, le tableau disjonctif complet 
 
FS=';' 
 
{  
head -1 "$1" | awk -F ${FS} '{print NF}'; 
for f in $(seq 1 $(head -1 "$1" | awk -F ${FS} '{print NF}')); 
do  
	cat "$1" | awk -F ${FS} "{print \$$f}" | sort -u | wc -l; 
	cat "$1" | awk -F ${FS} "{print \$$f}" | sort -u; 
done; 
cat "$1"; 
} | awk -F ${FS} 'BEGIN{ 
		getline NB_VAR; 
		for (i=1;i<=NB_VAR;i++) { 
			getline NB_MOD; 
			VAL="0 ";for (j=2;j<NB_MOD;j++) {VAL=VAL"0 ";}; 
			for (j=1;j<=NB_MOD;j++) { 
				getline MOD;  
				printf("%s ",MOD); 
				val[i MOD]=substr(VAL,0,(j-1)*2)"1 "substr(VAL,0,(NB_MOD-j)*2); 
			} 
		} 
		print ""; 
	}{	for (i=1;i<=NB_VAR;i++) { 
			printf("%s",val[i $i]); 
		};print ""; 
	}' | 
Partager