OVH Cloud OVH Cloud

question sur date

2 réponses
Avatar
chatiman
Bonjour,

Pourquoi lorsque je fais
date +%j
(nombres de jours depuis le 1 er janvier)
ca me retourne un nombre commencant par 0

que le shell considère comme un octal ?

2 réponses

Avatar
JustMe
chatiman wrote:

Bonjour,

Pourquoi lorsque je fais
date +%j
(nombres de jours depuis le 1 er janvier)
ca me retourne un nombre commencant par 0


c'est comme ca qu'est defini le %j de date


que le shell considère comme un octal ?


date +%j | sed 's/^0*//'






Avatar
Stephane Chazelas
2004-04-3, 20:10(+02), chatiman:
Pourquoi lorsque je fais
date +%j
(nombres de jours depuis le 1 er janvier)
ca me retourne un nombre commencant par 0


Parce que c'est defini comme un nombre sur trois chiffres (de
001 à 366).

que le shell considère comme un octal ?


Que /certains/ shells considèrent comme un octal dans leur
operateurs arithmetiques (en particulier tous les shells POSIX
conformant). Le Bourne shell, les vieilles versions de ksh ou
ash et zsh n'ont pas cette "feature".

Avec le GNU date, tu peux utiliser:

date +%-j

Sinon, tu peux faire (avec les shells POSIX):

j=$(date +%j)
j=${j#${j%%[!0]*}}

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]