Bonjour,
Débutant en Perl, je reçois des fichiers de reporting tous les matins et ils doivent être nettoyés avant de pouvoir être exploités. J'utilise un script comme celui-ci pour réaliser l'opération. Ma question est comment éviter l'étape " (NEW, ">tmp.csv") ".
Merci de votre aide
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
35
36
37
38
39 #!/usr/bin/perl -w @T = localtime(time-86400); $mydate = sprintf("%04d%02d%02d",($T[5]+1900),$T[4]+1,$T[3]); $mvno_f = "reporting_eai_siebel_mvno_$mydate\.csv"; open(MAINFILE, "$mvno_f") || die "Can't open file\n"; @mvno_r = <MAINFILE>; close(MAINFILE); foreach (@mvno_r) { # Lignes à supprimer $_ = "" if ($_ =~ m/Nb lignes/); $_ = "" if ($_ =~ m/DSI CRM_ERR_EXP/); chomp $_; } open(NEW, ">tmp.csv") || die "Can't open file\n"; foreach (@mvno_r) { print NEW $_."\n" if ($_); } close(NEW); # Ajout des sauts de lignes par catégorie open(FILE, "tmp.csv"); open(NEW, ">result.csv"); while(<FILE>) { $_ =~ s/^AR/\nAR/; $_ =~ s/^CR/\nCR/; print(NEW "$_"); } close(NEW); close(FILE); unlink("tmp.csv");
Partager