Bonjour,
Suite à une petite prise de tête, faisons partager celle-ci
Voilà mon souci est que je check-list mes machines et ensuite j'archive mes données dans ../../secu/hostname/jour_mois_annee
Mais mes "jour" "mois" "années" sont de la forme 30_Sept_10
Et ensuite je transforme ces datas pour un serveur web qui m'affiche un beau tableau et ça tourne tout seul avec crontab
Mon Manager me demande si c'est possible d'avoir les données de la veille et de l'avant veille pour avoir un comparatif d'évolution lors d'une période de ré médiation
Mon souci était donc d'avoir la date d'hier et d'avant hier de la forme XX_MOIS(en 4 lettres)_xx
voici ma petite solution
soit
hier en perl
86400 : correspond à 24H (vous pouvez doublez pour 48H ou plus pour 1 mois etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 perl -e 'use POSIX qw/strftime/; printf strftime("%d_%m_%y", localtime(time-86400));'
Ce qui me donne pour le 30-Septembre-2010 : 29_09_10
Je le mets dans une variable et je m'amuse avec awk !!!
pour avoir 29_Sept_10
Je sais certain vont me dire tu peux l'avoir aussi le mois avec %b mais 3 letres donc ... prise de tête
Et ce n'est qu'une démo pour faire jou jou avec un awk dans un awk
Voici :
Voici, pour ceux que cela interresse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 HIER=$(perl -e 'use POSIX qw/strftime/; printf strftime("%d_%m_%y", localtime(time-86400));' MANNEE="Janv;Fevr;Mars;Avri;Mai;Juin;Juil;Aout;Sept;Octo;Nove;Dece" MHIER=$(echo $HIER | awk -F"_" '{print $2}') puis echo $HIER | awk -F"_" '{print $1"_'$(echo $MANNEE | awk -F";" '{print $'$MHIER'}')'_"$3}'
Cordialement
kalwin
Partager