[Shell] Aide à la création d'un script UNIX
Bonjour,
Mon entreprise m'a demandé de programmer en langage UNIX un script à partir de la spécification détaillée ci dessous.
Ne connaissant pas très bien UNIX, pouvez vous me donner un coup de main ?
Merci d'avance.
Code:
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 35 36 37 38 39 40 41
| 2 sortes de fichier (.csv) en entrée :
Loc_S1_20070404.csv_20060405_220000
Loc_R1_20070411.csv_20060412_2200000
Loc_N1_20070406.csv_20060407_220000
Loc_........................
Fac_S1_20070408.csv_20060409_220000
Fac_R1_20070408.csv_20060409_220000
Fac_N1_20060408.csv_20060409_2200000
Fac_……………..
Structure de ces fichiers (.csv) (avec séparateur ‘ ; ‘) ;
xxxxxxxx;xxxxxxx;xx;xxxxxxx;xxx;01/04/2007;XXXXX;….. ;Z_1_S1; ……
xxxxxxxx;xxxxxxx;xx;xxxxxxx;xxx;01/04/2007;XXXXX;….. ;Z_1_S2; ……
xxxxxxxx;xxxxxxx;xx;xxxxxxx;xxx;01/04/2007;XXXXX;….. ;Z_1_S3; ……
Créer 2 scripts distincts (UNIX / AWK ?) :
1 script qui traite les fichiers Loc_*_2007*.csv_* :
Lire tous les fichiers Loc_*_2007*.csv_* du répertoire courant.
a) Sélection des lignes possédant en 6ème position ‘2007’ ET en 15ème position la chaîne ‘Z_1_S1 ’ ET en 20ème position la chaîne ‘ORIGINAL ’
Pour ces lignes sélectionnées, effectuer un comptage -> ORIGINAL = XXXX
b) Sélection des lignes possédant en 6ème position ‘2007 ’ ET en 15ème position la chaîne ‘Z_1_S1 ’ ET en 20ème position la chaîne ‘DUPLICATA ’.
Pour ces lignes sélectionnées, effectuer un comptage -> DUPLICAT 1 = XXXXX
1 script qui traite les fichiers Fac_*_2007*.csv_* :
Lire tous les fichiers Fac_*_2007*.csv_* du répertoire courant.
a) Sélection des lignes possédant en 6ème position ‘2007 ’ ET en 18ème position la chaîne ‘Z_1_S2 ’ ET en 20ème position la chaîne ‘ORIGINAL ’
Pour ces lignes sélectionnées, effectuer un comptage -> ORIGINAL = XXXX
b) Sélection des lignes possédant en 6ème position ‘2007 ’ ET en 18ème position la chaîne ‘Z_1_S2 ’ ET en 20ème position la chaîne ‘DUPLICATA ’
Pour ces lignes sélectionnées, effectuer un comptage -> DUPLICAT 1 = XXXXX
c) Sélection des lignes possédant en 6ème position ‘2007 ’ ET en 18ème position la chaîne ‘Z_1_S2 ’ ET en 20ème position la chaîne ‘DUPLICATA_GED ’
Pour ces lignes sélectionnées, effectuer un comptage -> DUPLICATA 2 = XXXXX |