8
votes

Comment puis-je obtenir le script de la date de Bash pour retourner un jour de la semaine par rapport à une heure non courante?

Utilisation de la date de Bash, je peux le faire retourner un jour de la semaine par rapport à l'heure actuelle.

# Should return 2 days before the Sunday before Feb. 1, 2012
date --d='Sunday before 02/1/2012 - 2 days'


0 commentaires

3 Réponses :


4
votes

Bien avec BASH, il peut être fait avec une certaine boucle (par exemple, obtenir la date à laquelle vous souhaitez utiliser comme référence dans une variable dans UNIX% S Format que celui de la décrémentation avec 24 * 60 * 60 Vérifier si son dimanche et l'imprimez-la. Si c'est vrai ...)

ou vous pouvez configurer quelque chose comme celui-ci avec awk xxx

Vous pouvez le voir en action ici . Presque. Comme ideone (que j'adore) n'autorise pas les variables de ligne de commande de passage à GAWK (ou i était paresseux de le comprendre ;-)), je devais les intégrer au bloc Begin aussi.

Si vous souhaitez que vous puissiez convertir ce qui précède en un datecalc.awk (avec ! # / usr / bin / gawk -f script qui utilise argv [n] variables au lieu de -v Fourni pour que vous puissiez l'appeler facilement à partir de vos scripts shell.


0 commentaires

9
votes

Vous pouvez utiliser un petit nombre de jours arithmétique: xxx

résultat: xxx


0 commentaires

2
votes

Ceci est assez facile à faire si vous avez libfaketime installé.

$ FAKETIME=$(FAKETIME='2012-02-01 00:00:00' date --d="last sunday" '+%Y-%m-%d %H:%M:%S') date --d="-2 days"
Fri Jan 27 00:00:00 EST 2012


0 commentaires