Bash/awk/ Jour julien en date ANNEE-MOIS-JOUR

Fermé
g@555 Messages postés 7 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 20 juin 2013 - Modifié par g@555 le 20/06/2013 à 10:39
 Utilisateur anonyme - 20 juin 2013 à 15:30
Bonjour,
J'ai des fichiers nommés day001,day002,day003, etc, et je voudrais
les renommer par day20070101, day20070102, etc.
J'ai plusieurs années à modifier dont des années bissextiles.
Quel est le moyen le plus simple de faire cela ?
Merci
A voir également:

2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
20 juin 2013 à 12:48
hello
par ex. (enlever le -n pour effectuer)
$ ls
day001	day002	day003
$ rename -n 's/0/200701/' d*
day001 renamed as day20070101
day002 renamed as day20070102
day003 renamed as day20070103
$ 
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
20 juin 2013 à 13:37
Salut,

J'ai l'impression que ses "001,002,003,etc.", correspondent aux quantièmes des jours dans l'année, donc je suppute qu'arriver à 32 va y avoir comme un os avec rename, non ? ;-\
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 20/06/2013 à 14:22
effectivement ça expliquerait l'absence de réponse ...attendons les précisions de l'émetteur
edit: c'est faisable:
$ date +%j
171
$ perl -e 'use  Time::Piece ;my $t = Time::Piece->strptime("2013 171","%Y %j");print $t->strftime("%c --- %Y%m%d\n")'
Thu 20 Jun 2013 12:00:00 AM CEST --- 20130620
$ 
0
g@555 Messages postés 7 Date d'inscription mardi 16 avril 2013 Statut Membre Dernière intervention 20 juin 2013
20 juin 2013 à 15:06
oui les fichiers correspondent aux 365/366jours dans l'année, donc
day001,day002 ...day 365
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
20 juin 2013 à 15:14
comment déterminer l'année ?
0
salut,

j'ai cherché
j'ai trouvé
$ DoY=$(date +%j)
$ date -d "$(date +%Y)-01-01 +$((DoY-1)) days" +'%Y%m%d'
20130620
c'est sûr, il va falloir adapter si le jour est le premier de l'année !
0