Script awk

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

  • Votes
  • Date
  • Date décroissante
  1. 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...
    1. 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
      1. ah non ça marche pas, zut
    2. awk '$1==strftime("%m") && $2==strftime("%e") {print $0 }' file
      1. 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"....
        1. 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 :) )
        2. @Utilisateur anonymeman 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.