IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unix Discussion :

Pour Info : Date d'hier en KSH avec awk et perl


Sujet :

Unix

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 70
    Points : 92
    Points
    92
    Par défaut Pour Info : Date d'hier en KSH avec awk et perl
    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

    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));'
    86400 : correspond à 24H (vous pouvez doublez pour 48H ou plus pour 1 mois etc...

    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 :
    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}'
    Voici, pour ceux que cela interresse

    Cordialement
    kalwin

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    la solution est bonne, et portable

  3. #3
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Portable sans doute, mais un chouia buggée...
    Il manque une parenthèse fermante à cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HIER=$(perl -e 'use POSIX qw/strftime/; printf strftime("%d_%m_%y", localtime(time-86400));'
    ɹǝsn *sıɹɐlos*

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2009
    Messages : 70
    Points : 92
    Points
    92
    Par défaut Oui tu as raison
    un oubli sur le copier coller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HIER=$(perl -e 'use POSIX qw/strftime/; printf strftime("%d_%m_%y", localtime(time-86400));')
    Voilà

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/01/2014, 18h21
  2. Réponses: 1
    Dernier message: 28/12/2012, 16h22
  3. Requête avec comparaison pour la date
    Par buzz! dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 10/08/2006, 18h00
  4. [VB]infos complémentaires pour l'impression d'une page excel avec vb
    Par Jacen dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 25/04/2006, 16h57
  5. Pour affciher la date d'hier
    Par CholetMan dans le forum Access
    Réponses: 3
    Dernier message: 27/11/2005, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo