Script awk

Fermé
Deneb - 26 oct. 2005 à 16:24
 Utilisateur anonyme - 26 oct. 2005 à 18:11
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
A voir également:

4 réponses

Utilisateur anonyme
26 oct. 2005 à 17:17
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
Utilisateur anonyme
26 oct. 2005 à 17:20
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
Utilisateur anonyme
26 oct. 2005 à 17:23
ah non ça marche pas, zut
0
Utilisateur anonyme
26 oct. 2005 à 17:35
awk '$1==strftime("%m") && $2==strftime("%e") {print $0 }' file
0
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
Utilisateur anonyme
26 oct. 2005 à 17:40
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
Deneb > Utilisateur anonyme
26 oct. 2005 à 18:08
Merci.
Si je suppose bien, la fonctionne strftime transforme un chiffre en string ?
0
Utilisateur anonyme > Utilisateur anonyme
26 oct. 2005 à 18:11
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