Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[shell/unix] date de la veille

jebok, le mercredi 3 août 2005 à 10:57:30
Bonjour,

Quelle commande (en shell-UNIX) permet d'afficher la date de la veille ?
PS : je précise que c'est pour un script en ksh
Merci de votre aide
Répondre à jebok  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le mercredi 3 août 2005 à 11:43:31
Voir là : http://www.commentcamarche.net/forum/affich-1712417#1
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jebok, le mercredi 3 août 2005 à 11:58:53
non ca marche pas...
Merci de votre aide
Répondre à jebok

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le mercredi 3 août 2005 à 12:03:47
Ben si ça marche, la preuve :
En bash

[jp@Mandrake jp]$ date --date '1 days ago'
mar aoû  2 11:38:36 CEST 2005

On change de shell (la commande est un alias)

[jp@Mandrake jp]$ kosh

$ date --date '2 days ago'
lun aoû  1 11:39:00 CEST 2005

$ date --date '1 days ago'
mar aoû  2 11:39:22 CEST 2005
;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 
Répondre à jipicy

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jebok, le mercredi 3 août 2005 à 12:07:17
regarde sur
http://www.commentcamarche.net/forum/affich-1712417#1
le message d'erreur que j'obtiens...
Merci de ton aide
Répondre à jebok

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
francois, le mercredi 3 août 2005 à 12:17:13
la syntaxe date X days ago n'existe pas sur tous les linux pas du tout sur les unix proprietaires et pas sur tous les BSD non plus !

à proscrire à jamais par concéquence.
une des solutions simple :
expr `date +%d` - 1


et bien sur si on veut gerer le moi et l'année il faut faire un shellscript
qui test si le jour est 0 alors faire cal du moi précédent pour voir si il se fini par 28,29,30,31 et si on est janvier faire année -1

rien de plus simple quoi
Répondre à francois

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
francis, le mercredi 3 août 2005 à 12:21:39
if [ `expr `date +%d` - 1` -le 0 ]; then
cal | grep -E "28|29|30|31" | awk ...........
fi


enfin bref je vais l'ecrire quand même ....
Répondre à francis

7


  • 2
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
sclamagirand, le mercredi 24 août 2005 à 14:16:52
Voila un script qui doit fonctionner :

#!/bin/ksh
#
set -A DAYS Sat Sun Mon Tue Wed Thu Fri Sat
set -A MONTHS Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#
# fonctionne sous Linux
#
# date -d '1 days ago'
#
YESTERDAY=$((`date +%d` -1))
MONTH=`date +%m`
YEAR=`date +%Y`
NDAY=`date +%u`
WEEKDAY=${DAYS[`date +%u`]}
#
if [ $YESTERDAY -eq "0" ];
then
#
MONTH=$((MONTH-1))
#
if [ $MONTH -eq "0" ];
then
#
MONTH=12
YEAR=$((YEAR-1))
#
fi
#
set `cal $MONTH ${YEAR}`
shift $(($# - 1))
YESTERDAY=$1
#
fi
#
TMONTH=${MONTHS[MONTH]}
YEAR2=${YEAR##20}
#
# uncomment next line for debugging
#
echo ${WEEKDAY} ${YESTERDAY} ${TMONTH} ${YEAR}
#
echo ${YESTERDAY}${MONTH}${YEAR2}
#
Répondre à sclamagirand

15


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 skea, le mardi 18 novembre 2008 à 16:37:16
Merci slamagirand, c'est nickel !!!
Répondre à skea

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
[Dal], le mercredi 24 août 2005 à 14:58:46
Bonjour,

On peut aussi convertir la date courante en secondes depuis Epoch, puis soustraire 86400 (24*60*60) au résultat et reconvertir le chiffre obtenu au format de date souhaité.

Voir man date, et man strftime pour les formats.


Dal
Répondre à [Dal]

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
raidcha, le mardi 29 novembre 2005 à 17:28:06
Sous solaris et HP-UX, il existe une solution plus simple que de creer un script.
Il suffit de jouer avec le fuseau horaire (variable systeme $TZ).

Exemple :
# echo `TZ=MET+24 date +"%D"`
donne: 11/28/05 (nous sommes le 11/29/05)

Le « +24 » correspond au nombre d’heures a "retrancher" (+) de l’heure actuelle, si tu veux les ajouter, utilises le - (voir plus bas)
Le %D correspond à la mise en forme de la date (cf man date) : mm/dd/yy

De la meme facon tu pourrais obtenir la date du lendemain sous le format aaaammjj, par exemple….
#echo `TZ=MET-24 date +"%Y%m%d"`
donne : 20051128

... ou du surlendemain (ne marche que sous solaris):
#echo `TZ=MET-48 date +"%Y%m%d"`
cette derniere commande ne marche pas sous HP-UX car il semble qu'on ne puisse pas faire plus d'une fois le tour de la terre avec HP :p
Répondre à raidcha

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
lionel sévérian, le vendredi 5 mai 2006 à 16:32:08
voici la solution à ton problème. ça marche et c'est ksh AIX...

GetDate()
{ # GetDate nDays [format]
# Exemple d'utilisation: export NAMEDIR=$(GetDate -1 '+%Y.%m.%d')

typeset -i nDays=$1; format=$2
eval $(echo $TZ | sed '
s!\([^-0-9]*\)\([-0-9]*\)\(.*\)!typeset -i localOffset=\2;zon1=\1;zon2=\3!')
TZ=$zon1$((localOffset-24*nDays))$zon2 date $format

}


A utiliser en fonction KSH sans modération...
Fais toi un Copier/Coller de tous ce qui est en gras...
Répondre à lionel sévérian

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Vag, le jeudi 22 février 2007 à 12:25:41
Merci pour ce code il m'a bien dépanné !! (et merci google)

mon problème était légèrement différent, je voulais trouver la date du dernier dimanche ...

Grâce à ton script j'ai pu faire ça :

case $(date +%a) in
Mon ) diff=-1;;
Tue ) diff=-2;;
Wed ) diff=-3;;
Thu ) diff=-4;;
Fri ) diff=-5;;
Sat ) diff=-6;;
Sun ) diff=0;;
esac
DATE1=$(GetDate $diff '+%d/%m/%Y')

ça marche mais c'est pas très joli :)

ça serait possible de faire une fonction GetDate2 ? avec comme paramètre $1 = le jour à obtenir (pour le dernier dimanche on met Sun) et $2 toujours le format

chui sûr que ça peut être fait en récursif en plus :)
Répondre à Vag

12


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
tontonserver, le vendredi 25 janvier 2008 à 16:33:30
Pour le calcul de la date à J-1, faut pas se prendre la tête:
DATE=$((`/bin/date +'%Y%m%d'` - 1))
La, c'est pour un format YYYYMMJJ, après, faites le à votre sauce!
@+
Répondre à tontonserver

13


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Goldmund, le mercredi 3 septembre 2008 à 14:35:46
Ca marche pas les 1ers du mois!!
Répondre à Goldmund

Résultats pour [shell/unix] date de la veille

[Shell Unix] Utilisation du WAIT (Résolu) Bonjour, J'aimerais appeler un shell unix à l'intérieur d'un shell père. Je sais que la commande WAIT est utilisable dans ce cas mais je n'arrive pas à l'implémenter. Faut-il mettre le mot clé avant ou après l'appel ?... www.commentcamarche.net/forum/affich-2569129-shell-unix-utilisation-du-wait
Formater un nombre avec des 0 en shell Unix (Résolu) Bonjour, Je voudrais formater en shell Unix, un chiffre de façon qu'il ait toujours deux positions numériques. par exemple 1 devient 01, 2 devient 02, etc... Bien sûr, je peux le faire avec un peu de programmation, mais est-il possible de la... www.commentcamarche.net/forum/affich-3659785-formater-un-nombre-avec-des-0-en-shell-unix
[Shell / UNIX] Manipulation de dates (Résolu) Bonjour, Quelle commande (en shell-UNIX) permet d'afficher la date de la veille ? PS : je précise que c'est pour un script en ksh Merci de votre aide www.commentcamarche.net/forum/affich-1712417-shell-unix-manipulation-de-dates

Résultats pour [shell/unix] date de la veille

[Shell] Accès aux dernières commandes de l'historiqueLe shell Linux/Unix regorge de fonctionnalités permettant de gagner du temps. Ainsi, il est possible de remonter dans l'historique des dernières commandes grâce aux flêches de navigation en appuyant sur la flêche du haut. Mais il y a moyen... www.commentcamarche.net/faq/sujet-971-shell-acces-aux-dernieres-commandes-de-l-historique
[Shell] Transferer des fichiers via sshSSH - Secure SHell Utilisation Informations complémentaires LOGICIELS Sous Linux/Unix Sous Windows Avertissement Utilisation SSH permet d'utiliser des pipelines de commandes, et d'utiliser des tubes d'entrées/sorties comme toute autre... www.commentcamarche.net/faq/sujet-904-shell-transferer-des-fichiers-via-ssh
Qu'est-ce que la mise en veille hybride sous vista?Vista dispose d'un nouveau mode de mise en veille: la veille hybride. Ce mode est activé par défaut, c'est pour ça que quand vous allez dans démarrer et que vous choisissez les options d'arrêt, vous avez uniquement l'option "Mettre en veille" et non ... www.commentcamarche.net/faq/sujet-8374-qu-est-ce-que-la-mise-en-veille-hybride-sous-vista

Résultats pour [shell/unix] date de la veille

Commande Perl dans Shell Unix (Résolu)Bonjour, Je voudrai exécuter une commande Perl dans un Shell UNIX. Exemple : perl -pi -e 's/(.*)/date#${ACTIVITY_INSTANCE_ID}#$.#$1#${V_INTERFACE_ID}#1/' ${FIC_DATA} Mais apparemment lors de l'exécution de cette commande, les valeurs... www.commentcamarche.net/forum/affich-5740738-commande-perl-dans-shell-unix
[Shell Unix] Convertir du Batch en Shell Unix (Résolu)Bonjour à tous, J'aimerais traduire la ligne de Batch suivante en Shell Unix mais je galère :-( set CMD_LINE=for /F "delims=. tokens=1,2,3,4,5,6" %%i in ('type %SQL4OUT_PROC_ROOT%%PAR4OUT_FILE%%PAR_EXT%') do sqlplus... www.commentcamarche.net/forum/affich-2593825-shell-unix-convertir-du-batch-en-shell-unix
[shell] faire un substring (Résolu)Bonjour, J'ai une chaine de caractères dont je souhaite garder uniquement les 4 premiers caractères. Comment faire cela en shell UNIX (ksh) ? Merci de votre aide www.commentcamarche.net/forum/affich-1650672-shell-faire-un-substring

Résultats pour [shell/unix] date de la veille

Télécharger CygWinCygwin est un environnement UNIX pour Windows composé: d'un shell Unix d'une librairie dynamique (DLL) chargée de fournir une couche d'émulation Unix pour le système Windows d'un ensemble de librairies, sources et exécutables adaptés à Cygwin... www.commentcamarche.net/telecharger/telecharger-99-cygwin

Résultats pour [shell/unix] date de la veille

Les appareils produits dans l'UE devront consommer moins en veille(Paris - Relax news) - L'Union européenne a approuvé, lundi 7 juillet, la proposition de règlement de la Commission européenne visant à réduire la consommation d'électricité des appareils en mode veille d'ici à 2020, indique un communiqué de presse... www.commentcamarche.net/actualites/les-appareils-produits-dans-l-ue-devront-consommer-moins-en-veille-5847019-actualite.php3

Résultats pour [shell/unix] date de la veille

Systèmes UNIX - Le shellIntroduction au shell L'interpréteur de commandes est l'interface entre l'utilisateur et le système d'exploitation, d'où son nom anglais «shell», qui signifie «coquille». Le shell est ainsi chargé de faire l'intermédiaire entre le système... www.commentcamarche.net/contents/unix/unix-shell.php3
Introduction aux systèmes UNIXLe système UNIX Le système Unix est un système d'exploitation multi-utilisateurs, multi-tâches, ce qui signifie qu'il permet à un ordinateur mono ou multi-processeurs de faire exécuter simultanément plusieurs programmes par un ou plusieurs... www.commentcamarche.net/contents/unix/unixintro.php3
Commandes UNIXTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ... www.commentcamarche.net/contents/unix/unixcomm.php3