Je cherche des commandes Unix droites pour obtenir le premier dimanche du mois prochain, le premier lundi du mois prochain, le premier mardi du mois prochain, le premier mercredi du mois prochain, etc.
J'en aurai besoin dans le format de date complet (l'heure n'est pas obligatoire)
Je peux obtenir des nombres comme 2, 3, 4 etc. Comme je ne veux pas que des nombres, j'en aurai besoin au format date (comprend le jour, le mois, l'année)
$ NEXT_MONTH=`date +'%m %Y' -d 'next month'` $ echo $NEXT_MONTH 04 2017 $ NEXT_SUNDAY=`cal $NEXT_MONTH | awk 'NF==7 && !/^Su/{print $1;exit}'` $ echo $NEXT_SUNDAY 2
J'aurai besoin de ces dates pour envoyer des notifications au groupe de messagerie.
Ex: je pourrais avoir le premier samedi du mois prochain comme ci-dessous.
$ firstofmonth=$(date -d '+1 months' '+%Y%m01')
20170401
$ firstsaturday=$(date -d "$firstofmonth" '+%Y-%m')-$((7 - \
$(date -d "$firstofmonth" '+%u') ))
2017-04-1
bash
est un clone inachevé de ksh (avec certaines fonctionnalités de (t) csh et zsh et même quelques-unes des siennes). Les versions récentes debash
ont ajouté la prise en chargeprintf '%(format)T'
deksh93
, mais pas la possibilité d'analyser ce type de spécifications de date. Remplacez votre she-bang par#! /path/to/ksh93 -
.bash
est un clone inachevé de ksh" - j'ai toujours ressenti cela.En supposant GNU
date
(pour cela que-d
vous utilisez vous-même), et unzsh
shell semblable à{1..7}
:Remplacez le
awk
Monpar le jour de la semaine requis (utilisezLC_ALL=C
pour obtenir les noms des mois en anglais, indépendamment des paramètres régionaux de l'utilisateur). En outre, il peut être préférable de stocker cela dans une variable si vous effectuez une nouvelle requête pour chaque jour de la semaine:la source
PHP facilite en fait l'analyse des dates avec une entrée textuelle, si elle est disponible sur votre système.
Exemple:
J'ai cette fonction dans mon .bashrc:
Que je peux utiliser comme:
Modifier l' option d'ajout à utiliser
cal
Presque tous les systèmes qui l'ont
bash
aurontcal
. Le programme du calendrier. Vous pouvez obtenir une liste de la date en exécutant une combinaison de la première de chaque jour de la semainecal
,date
etawk
, comme suit:Ce qui vous donnera la sortie suivante:
Passez
$2
à$NF
dans l'instruction awk pour obtenir la date de la dernière occurrence de chaque jour d'un mois.la source
php
installé. Je l' ai mis à jour avec un exemple qui utilise lescal
,date
et lesawk
commandes.