2010-02-10 6 views
8

J'ai un script Perl qui va s'exécuter dans un travail cron sur linux suse. Il prendra en entrée un fichier journal qui a été généré hier. Le nom de fichier du journal contient la date (par exemple log.20100209)Comment puis-je obtenir et mettre en forme la date d'hier sur la ligne de commande?

Puis-je envoyer la date d'hier avec le format dans l'invite? Dois-je créer un script supplémentaire pour obtenir la date et l'exécuter? Si oui, comment puis-je faire cela?

Merci

perl myscript.pl -f log.20100209 

Modifier

Merci pour votre aide

Il a travaillé avec:

perl myscript.pl -f log.`date --date='yesterday' '+%Y%m%d'` 

Répondre

28

Date GNU:

date --date='yesterday' '+%Y%m%d' 
+0

+1 I Préférerait cela à mon propre Perl ci-dessous :) –

+0

Facile et lisible, merci! – Cesar

1

Vous pouvez obtenir la date d'hier comme celui-ci:

perl -we'@a=localtime(time-24*3600);printf "%04d%02d%02d", $a[5]+1900, $a[4]+1, $a[3]' 

Vous pouvez utiliser ce lorsque vous appelez votre script à l'invite:

perl myscript.pl -f log.`perl -we'@a=localtime(time-24*3600);printf "%04d%02d%02d", $a[5]+1900, $a[4]+1, $a[3]'` 

Mais cela est illisible, et je vous suggère d'écrire un script approprié qui calcule la date d'hier, et appelle ensuite myscript.pl.

+0

Voir aussi: http://theoryx5.uwinnipeg.ca/CPAN/perl/pod/perlfaq4/How_do_I_find_yesterday's_date.html et http://flux.org.uk/howto/perl/yesterday_date –

0

Vous ne devriez pas avoir besoin d'envoyer la date d'hier comme un paramètre supplémentaire. Vous pouvez déjà obtenir l'aide de deux autres méthodes:

  1. Perl temps intégré(), localtime(), ou gmtime() fonctions vous donnera la date et l'heure, et vous pouvez travailler avec cela pour déterminer date d'hier.
  2. Il est déjà inclus dans le nom de votre fichier journal, vous pouvez donc analyser le nom de fichier pour obtenir la date dans le format dont vous avez besoin.

Perl a a lot of modules pour travailler avec les dates et les heures, selon exactement ce que vous devez faire.

+0

Merci, mais je veux quelque chose de simple qui permet de rester indépendant du fichier journal – Cesar

Questions connexes