Script awk

Deneb -  
 Utilisateur anonyme -
Bonjour à tous,

Voila je voudrais faire un script sh mais je n'y arrive pas, pouvez-vous m'aider ? Voici le problème :
D'un côté, j'ai fichier "file" qui contient une liste de date avec des rappels:
10 31 Anniv de Paul
4 1 Poisson d'avril
...

Et je voudrais faire un script qui m'affiche les rappels du jour. Mon problème réside dans le fait que je voudrais utiliser la sortie de la fonction date comme test pour awk. Voila comment j'ai commencé :
date "+%m %e" | awk 'XX==$1 & XX==$2 {print$0} ./file
Mais que faut-il metttre à la place des XX (respectivement le mois et le jour en cours).
J'avais également pensé à quelque chose du style :
awk '{date+%m}==$1 & {date+%e}==$2 {print$0} ./file
mais sans sucès.

Merci à tous

4 réponses

  1. Utilisateur anonyme
     
    tu tiens à faire ça avec awk ?

    si oui je vais chercher dans mon bouquin, des fois que je trouve. Mais si ce n'est pa sun exercice, et que l'objectif est utilitaire, je ne saurais trop te conseiller l'extraordinaire remind
    http://www.roaringpenguin.com/penguin/open_source_remind.php

    que personnellement j'utilise avec wyrd

    atouzazar je vais tout de même voir, encore que je ne m'intéresse à awk que depuis peu de temps...
    0
  2. Utilisateur anonyme
     
    cela dit, à vue de groin, j'aurais plutot fait un truc du genre

    awk '$1==`date +%m` & $2==`date +%e` {print$0} ./file

    mais c'est en m'inspirant de ta syntaxe, faut que je relise comment on fixe des conditions à awk
    0
    1. Utilisateur anonyme
       
      ah non ça marche pas, zut
      0
  3. Utilisateur anonyme
     
    awk '$1==strftime("%m") && $2==strftime("%e") {print $0 }' file
    0
  4. Deneb
     
    Merci à toi kinder.surprise de te préoccuper de mon cas. Et oui c'est un exercice, donc la commande awk est imposée. sinon j'ai aussi essayé la commande getline pour l'avoir vu sur internet mais je n'arrive pas à l'utiliser et mon pc (fedora core) me dit "getline : command not found"....
    0
    1. Utilisateur anonyme
       
      la dernière que je t'ai donnée fonctionne (enfin faut voir aussi dans les jours à un chiffre et j'ai la flême de changer mon PC de date là tout de suite :) )
      0
      1. Deneb > Utilisateur anonyme
         
        Merci.
        Si je suppose bien, la fonctionne strftime transforme un chiffre en string ?
        0
      2. Utilisateur anonyme > Utilisateur anonyme
         
        man awk
        strftime([format [, timestamp]])
                  Formats timestamp  according to  the specification  in format.
                  The  timestamp should  be  of  the same  form  as returned  by
                  systime().  If timestamp  is missing, the current  time of day
                  is used.  If format is missing, a default format equivalent to
                  the output of date(1) is  used.  See the specification for the
                  strftime() function in ANSI C  for the format conversions that
                  are guaranteed  to be  available.  A public-domain  version of
                  strftime(3) and  a man  page for  it come  with gawk;  if that
                  version was used to build gawk,  then all of the conver- sions
                  described in that man page are available to gawk.
        
        0