Retourner aux forums || Retourner au forum

Programmation.shell : Ksh et manipulation de date

Posté par k3ats (page perso, ) le 31 janvier 2006
0
Bonjour tout le monde,

j'ai un problème que je n'arrive pas à résoudre en shell.

Je souhaiterais obtenir la date du jour J-1 (J étant aujourd'hui) c'est à dire obtenir la date de hier.

J'ai essayé avec la commande date et à priori il n'y pas ce genre de possibilité.

Je pense maintenant me tourner plutot vers awk pour calculer ceci, est-ce que vous auriez une idée pour résoudre mon problème ?

Merci d'avance

> Lire le message (6 commentaires, moyenne: 1).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

date

Posté par JJD () le 31/01/2006 à 16:47. (lien). Évalué à 1.

Salut,

Ça n' aucun rapport avec le shell (bash, ksh ou autre), puisque date est un binaire (/bin/date), mais si tu es sous Linux, la version de date que tu as permet certainement de faire ce que tu veux. Il suffit de lui dire :
$ date -d "1 day ago"
et là, ça t'affiche bien la date d'hier (lun jan 30 17:39:46 CET 2006).

Et bien sûr, les options classiques de formatage fonctionnent de la même façon que d'habitude.

Evidemment, si tu n'es pas sous Linux ça risque d'être plus compliqué... Il y a bien la possibilité, comme tu l'as écrit, d'utiliser awk, mais là encore les fonctions de traitement des dates doivent être une spécificité GNU (gawk) : il n'est pas du tout sûr que tu retrouves ces mêmes possibilités sur d'autres environnements. Si tu veux quelque chose qui marche partout, il va falloir regarder du côté de Perl (qui est maintenant souvent installé sous pleins d'Unices) ou faire ça en C.

A+
JJD

  • [^]Re: date

    Posté par k3ats (page perso, ) le 31/01/2006 à 16:48. (lien). Évalué à 1.

    Merci,

    mais malheureusement c'est du SunOS 5.8 que j'ai sous la main :(

Une solution pas top, mas une solution quand même ...

Posté par k3ats (page perso, ) le 31/01/2006 à 16:47. (lien). Évalué à 1.

Alors voila en fait j'ai peut-être trouvé une solution, c'est toujours la commande date , mais en positionnant la time zone avant l'execution de la commande :

TZ=MET+24 date

me renvoie bien la date de hier mais il semble y avoir une heure de décallage ... (pas top si je dois faire +23 ou +22 selon l'heure d'hiver ou d'été)

date --date 'yesterday' '+%D'

Posté par Bruno Muller (Jabber id, page perso, ) le 31/01/2006 à 16:48. (lien). Évalué à 1.

'a pas bien cherché...

man date, info date,...

  • [^]Re: date --date 'yesterday' '+%D'

    Posté par k3ats (page perso, ) le 31/01/2006 à 16:54. (lien). Évalué à 1.

    Euh vi mais non ... mon 'date' n'a pas ce genre de feature (sunos 5.8).

    J'aurais du le préciser.

    Merci quand même

    • [^]Re: date --date 'yesterday' '+%D'

      Posté par Bapt (page perso, ) le 31/01/2006 à 17:15. (lien). Évalué à 1.

      La seule solution (j'ai eu le problème) c'est soit d'installer GNU Date, je ne pense pas que tu es le droit. Sinon c'est d'utiliser un appel à perl -i -e 'lafunctionquidonneladateensecondedepuisepoch"

Revenir en haut de page || Retourner aux forums || Retourner au forum