l'obtention d'une date antérieure à bash/unix
Je suis à la recherche pour obtenir la date est antérieure à unix /shell script .
Je suis en utilisant le code suivant
date -d ’1 day ago’ +’%Y/%m/%d’
Mais j'obtiens l'erreur suivante.
date: illegal option -- d
Autant que j'ai lu sur inetrnet , cela signifie essentiellement, je suis en utilisant une ancienne version de GNU. Quelqu'un peut s'il vous plaît aider avec ceci.
Plus D'Info
unix> uname -a
SunOS Server 5.10 Generic_147440-19 sun4v sparc SUNW,Sun-Fire-T200
Également La commande ci-dessous donne une erreur.
unix> date --version
date: illegal option -- version
usage: date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]
Est-ce sur linux?
si vous utilisez un vrai unix, beaucoup ne prennent pas en charge la
Nan Unix ,
+1 pour shellter, une alternative cours de jour -h et/ou de l'homme date pour voir si votre système prend en charge l'option-d.
Vous pouvez vérifier si vous avez
si vous utilisez un vrai unix, beaucoup ne prennent pas en charge la
date -d
option. Envisager la modification de votre question pour inclure la sortie de uname -a
et date --version
. Bonne chance.Nan Unix ,
SunOS 5.10 Generic_147440-19 sun4v sparc SUNW,Sun-Fire-T200System = SunOS
+1 pour shellter, une alternative cours de jour -h et/ou de l'homme date pour voir si votre système prend en charge l'option-d.
Vous pouvez vérifier si vous avez
gdate
(GNU date) installé.OriginalL'auteur misguided | 2013-04-16
Vous devez vous connecter pour publier un commentaire.
Plusieurs solutions suggérées ici supposent
GNU coreutils
être présent sur le système. Les éléments suivants doivent travailler sur Solaris:Si votre fuseau horaire est GMT+10, l'utilisation
TZ=GMT+14 date +’%Y/%m/%d’
.... Ce qui rend à nouveau cette réponse inadaptée pour une solution portable; mais si cela fonctionne pour vous, il est possible de soutenir le plus simple.
Merci. Veux juste comprendre la logique , si c'est GMT +10 , pourquoi suis-je à l'aide GMT+14 dans l'équation?
Une autre option est-à-dire:
TZ=$TZ+24 date +’%Y/%m/%d’
OriginalL'auteur devnull
essayez ceci:
J'utilise dans mon script shell et fonctionne très bien pour moi dans tous mes coquilles. Avez-vous testé ??
Alors la question du code ont travaillé pour vous, et vous n'êtes pas sur SunOS.
Oui, qui a également travaillé. Je ne suis pas à l'aide de SunOS, c'est pourquoi j'ai demandé à essayer.
Ubuntu fonctionne très bien
OriginalL'auteur kumarprd
vous pouvez utiliser
pour obtenir la date à partir de 30 jours, de la même manière, vous pouvez remplacer 30 x nombre de jours
OriginalL'auteur Dan Pickard
OriginalL'auteur Vladislav Ross
Afin d'obtenir 1 jour date à l'aide de la commande date:
date -v -1d
Il va donner (date actuelle -1) signifie 1 jour avant .date -v +1d
Cela donnera le (date du jour +1) signifie 1 jour après.
De même ci-dessous le code écrit peut être utilisé à la place de
d
pour trouver de l'année,le mois, etcy-Year,
m-Month
w-Week
d-Day
H-Hour
M-Minute
S-Second
OriginalL'auteur user3568717
le script suivant imprime la date antérieure à la
targetDate
(Date spécifiée ou date donnée)OriginalL'auteur Ravi Babu Mathi
J'ai utilisé la solution de contournement suivante pour arriver à la solution .
J'espère que cela est utile pour les personnes qui sont confrontés à la même question que moi.
d'accord que ce n'est pas une solution infaillible.Mais en ce moment, je ne suis pas en mesure de trouver d'autres solutions :(. Je suis toujours à la recherche d'une meilleure réponse.
OriginalL'auteur misguided
SunOS livré avec l'héritage BSD outils utilisateurs qui manquent souvent de moderne attendu d'options. Voir si vous pouvez obtenir le XPG add-on (c'est quelque chose comme
/usr/xpg4/bin/date
) ou d'installer GNUcoreutils
colis si vous le pouvez.En attendant, vous pourriez avoir besoin d'écrire votre propre simple de gestion des dates de script. Il existe de nombreux exemples sur le net par exemple en Perl. E. g. cette une:
(Légèrement adapté, si on le compare à celui qui se trouve derrière le lien.)
OriginalL'auteur tripleee
De temps d'utilisation de la zone de manière appropriée
OriginalL'auteur akash malbari
Essayez Ceci:
gdate -d "il y a 1 jour" +"%Y/%m/%d"
OriginalL'auteur venki
Problème
Vous utilisez backticks, plutôt que de simples citations, pour vos arguments. Vous pouvez également ne pas être à l'aide de GNU date, ou une version de date qui prend en charge le drapeau que vous utilisez.
Solution
Citer vos arguments correctement. Par exemple:
date: illegal option -- d
OriginalL'auteur Todd A. Jacobs