Commentaire sur ce script perl

Fermé
pianoclassique Messages postés 108 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 19 janvier 2009 - 17 avril 2008 à 10:21
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 17 avril 2008 à 12:23
Bonjour,
Bonjour,

j'ai recu ce script la semaine derniére du membre lami20j, et je veut svp les commentaires de chaque ligne ou de chaque blocs de ce script.
je veut voir comment je peut exécuter ce programme sur ubuntu.

Merci......................................

script1:
root@debian:~# cat epoch.pl
#!/usr/bin/perl
use strict;use warnings;
use Time::Local;

open LIRE,"epoch.log"
or die "E/S ! $!\n";

while(<LIRE>){
/^(\d+)\s+(.*)/;
my ($sec, $min, $heure, $jour, $mois, $annee) = (localtime($1))[0..5];
$mois+=1;
$annee+=1900;
print;
printf ("%02d/%02d/%02d %02d:%02d:%02d $2\n",$jour,$mois,$annee,$heure,$min,$sec);
my $epoch = timegm($sec, $min, $heure, $jour, $mois-1, $annee-1900);
print "$epoch $2\n";
print "-" x 50,"\n";
}
__END__
Résultat:

root@debian:~# perl epoch.pl
1036567881 2313865839 3040227868
06/11/2002 08:31:21 2313865839 3040227868
1036571481 2313865839 3040227868
--------------------------------------------------
1036567881 937 713 937 713
06/11/2002 08:31:21 937 713 937 713
1036571481 937 713 937 713
--------------------------------------------------
1036567581 1561 229 1561 229
06/11/2002 08:26:21 1561 229 1561 229
1036571181 1561 229 1561 229
--------------------------------------------------
1036567500 1831 240 2561 273
06/11/2002 08:25:00 1831 240 2561 273
1036571100 1831 240 2561 273
--------------------------------------------------
1036567200 2473 643 2561 1647
06/11/2002 08:20:00 2473 643 2561 1647
1036570800 2473 643 2561 1647
--------------------------------------------------
1036566900 2312 1305 2513 1647
06/11/2002 08:15:00 2312 1305 2513 1647
1036570500 2312 1305 2513 1647
A voir également:

7 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
17 avril 2008 à 10:50
Salut,

#!/usr/bin/perl
use strict;use warnings; #utilisation des pragma pour
	                #afficher les messages d'erreur
	                #et pour pragma strict :
	                #- le variables doivent être déclarées (locale ou globale)
	                #- rendre impossible l'utilisation de références symboliques
	                #- rendre impossible l'utilisation de mots non declarés
	                     
use Time::Local;

open LIRE,"epoch.log" 
or die "E/S ! $!\n";# ouverture du fichier en lecutre

while(<LIRE>){   # le fichier est parcouru ligne par ligne
/^(\d+)\s+(.*)/; # capture de nombre répresentant les seconds epoch
	        # dans la variable $1
	        # qui sera utilisé par la fonction localtime
my ($sec, $min, $heure, $jour, $mois, $annee) = (localtime($1))[0..5];
# localtime envoi une liste de 9 éléments
# on a besoin seulement de 6 premiers
# (localtime($1))[0..5] c'est une tranche de la liste
# envoyée par localtime

$mois+=1;     # les mois envoyés par localtime sont de 0 à 11
	     # $mois =+1 est équivalent avec $mois = $mois +1
$annee+=1900; # nécessaire pour obtenir l'année
print;        # affiche de la ligne du fichier
# affiche de la conversion de seconds epoch en date format jj/mm/aa hh:mm:ss
printf ("%02d/%02d/%02d %02d:%02d:%02d $2\n",$jour,$mois,$annee,$heure,$min,$sec);
# conversion de secondes epoch en utilisant les valeurs obtenus
# avec localtime
my $epoch = timegm($sec, $min, $heure, $jour, $mois-1, $annee-1900);

print "$epoch $2\n"; # affiche les secondes epoch et la 2ème capture
	            # contenu par $2
print "-" x 50,"\n"; # après chaque traitement de ligne
	            # écrit un tiret 50 fois
}
__END__
--
106485010510997108
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
17 avril 2008 à 10:53
je veut voir comment je peut exécuter ce programme sur ubuntu.

comme je l'ai fait sous debian ;-)
0
pianoclassique Messages postés 108 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 19 janvier 2009 4
17 avril 2008 à 11:30
comment je peut excuter ce script sur le terminal de ubuntu .perl est installer par défaut sur ubunto.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
17 avril 2008 à 11:36
Salut,

Voir Exécuter un script
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
17 avril 2008 à 11:39
perl est installer par défaut sur ubunto
oui

si perl n'aurais pas été installé même avec les manipulations que tu trouveras dans le liens donné par jipicy, le script ne fonctionnera pas

quand shell va lancer le script, en fait il va chercher l'interpreteur perl dans /usr/bin
c'est la 1ère ligne de script qui spécifie le chemin vers l'interpreteur perl
#!/usr/bin/perl
0
pianoclassique Messages postés 108 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 19 janvier 2009 4
17 avril 2008 à 12:18
quel sont les commande ou les étapes d'exécuter ce script sur debian
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
17 avril 2008 à 12:23
tu l'as dans ton message (supposant que le script s'appelle epoch.pl)
root@debian:~# perl epoch.pl 
--
106485010510997108
0