8
votes

Script Linux - manipulations DATE

Je vais définir une variable de date (dire '08 -Jun-2011 ') et je veux faire des calculs basés sur cette date, nommément

1. Doit avoir le premier jour du mois de la journée.
2. Date précédente de la date de la date donnée.
3. Dernier jour de la date de la date donnée.

Tout ce que je sais, c'est manipuler à l'aide de la date et de l'heure du système actuel, mais je ne sais pas comment mettre en œuvre avec la date définie par l'utilisateur. J'ai besoin que cela soit atteint à l'aide du script de shell Linux.

Toute aide sera appréciée.

merci,
Karthik


1 commentaires

Pour # 1, tu veux dire jour-de-semaine (c'est-à-dire mon-vendredi?), Il sera toujours "01" pour la fête de la journée, non? ;-) Bonne chance.


5 Réponses :


3
votes

Ceci va être compliqué dans un script shell. Vous ferez mieux d'utiliser la date :: manip à Perl ou quelque chose de similaire dans une autre langue complète. Cependant, je peux penser à certains moyens de le faire avec la commande de date. Tout d'abord, vous pouvez utiliser un paramètre A --Date pour définir un point de départ pour la date, comme: xxx pré>

Vous pouvez obtenir la date précédente comme ceci: P>

$ date --date='31-JUN-2011';echo $?
date: invalid date `31-JUN-2011'
1
$ date --date='30-JUN-2011';echo $?
Thu Jun 30 00:00:00 EDT 2011
0


0 commentaires

3
votes

Comme vous utilisez Linux, vous disposez de l'utilitaire de date GNU disponible. Il peut gérer presque toutes les descriptions d'une date relative que vous pensez.

Voici quelques exemples xxx

pour en savoir plus à ce sujet voir GNU Date Exemples

Une fois que vous l'utilisez, Vous pouvez raccourcir votre collecte d'informations avec date --Help , qui affiche toutes les options de base (mais est parfois difficile à interpréter.)

J'espère que cela aide.


1 commentaires

Merci pour le lien de référence et le support!



12
votes

Voici comment exécuter les manipulations à l'aide de la date de GNU: xxx

La sortie est la suivante: xxx


1 commentaires

Oh merci beaucoup cela a vraiment travaillé. La réponse de chacun est bonne et la réponse de Gregg s'adapte vraiment mieux pour moi. Merci!



0
votes
$ date +%m/01/%Y
I came here looking for a way to get the first day of the current month.

0 commentaires

0
votes

Utilisation de DateUtils ' Terron Outil:

mois en cours: P> xxx pré>

mois précédent p> xxx pré>

dernier jour du mois en cours: p> xxx pré>

bien sûr Vous pouvez utiliser une date personnalisée au lieu de aujourd'hui code>, l'idée est de se rendre au jour ou à la journée souhaitée du mois, par exemple Le prochain premier de l'année 2010-10-04: P>

$ dround 2010-10-04 +1d
2010-11-01


0 commentaires