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 42 43 44 45 46 47 48
|
#!/usr/bin/perl -w
use strict;
#initialise les variables
my $i = 0;
my $ligne = "";
my $rejectfile = "";
#trouver position du début d'extension du fichier d'entrée pour la remplacer par .rejet (ou ajout si pas d'extension)
$i = index($ARGV[0],".");
$rejectfile = substr ($ARGV[0],0,$i)."\.rejet";
#ouverture fichier d'entrée en lecture
open (FICHIER, $ARGV[0]) or die ("open: $! $ARGV[0]\n"); #si erreur afficher erreur et quitter
#ouverture du fichier de sortie pour écriture
open(SORTIE, ">> $ARGV[1]") or die ("open: $! $ARGV[1]\n");
#ouverture du fichier de rejet pour écriture
open(REJET, ">> $rejectfile") or die ("open: $! $ARGV[1]\n");
while ( my $ligne = <FICHIER> ) { #tant que le fichier n'est pas entièrement lu faire :
chomp $ligne; #suppression retour chariot de fin de ligne
if (index( $ligne,".zeni.fr") >= 0) { #vérification de la structure ville.zeni.fr : si ok continuer
unless ( $ligne =~ /^[\.]|[^a-z\.-]/) { #test caractères (on n'exécute pas si la ligne:débute par un #point, ou si elle comporte tout caractère(^),sauf minuscules,points ou tirets)
print ( SORTIE "$ligne\t\tIN\tA\t10.0.0.1\n\t\t\tIN\tMX 1\tmail.$ligne\n"); # écriture dans le fichier de sortie
}
}
else { #si conditions non remplies la ligne en cours est non valide
unless ( $ligne =~ /^[#]/ or "") {
print ( REJET "$ligne\n"); # écriture dans le fichier de rejet
}
}
}
close(FICHIER);
close(SORTIE);
close(REJET); |