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

g@555 Messages postés 7 Statut Membre -  
 Utilisateur anonyme -
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

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      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
    3. g@555 Messages postés 7 Statut Membre
       
      oui les fichiers correspondent aux 365/366jours dans l'année, donc
      day001,day002 ...day 365
      0
    4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      comment déterminer l'année ?
      0
  2. Utilisateur anonyme
     
    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