[PERL] Modifier date de fichier log

Résolu
TMart Messages postés 67 Statut Membre -  
TMart Messages postés 67 Statut Membre -
Bonjour,
J'aurais besoin de modifier la date de mon fichier log. En effet elle est de jour/mois/année et par le biais d'un script Perl je voudrais qu'elle soit classé par année-mois-jour.

Il me semble qu'en sed la commande est : s=^\([0-9]*\)/\([0-9]*\)/\([0-9]*\)=\3-\2-\1

Comment fait-on en Perl s'il vous plait ?

Amicalement TMart.

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    $ cat a3
    01/03/2010 03:11:50 0001 327 L34
    01/03/2010 03:12:59 0002 327 L21
    01/03/2010 03:13:42 0003 267 L23
    01/03/2010 04:14:49 0004 267 L33 
    $ 
    $ perl -e 'while(<>){ s=([0-9]*)/([0-9]*)/([0-9]*)=\3-\2-\1=;print}' a3
    2010-03-01 03:11:50 0001 327 L34
    2010-03-01 03:12:59 0002 327 L21
    2010-03-01 03:13:42 0003 267 L23
    2010-03-01 04:14:49 0004 267 L33 
    $ 
    

    pour modifier directement le fichier, utiliser perl -i -e ...
    1
    1. TMart Messages postés 67 Statut Membre 7
       
      ... Respect, j'y suis depuis hier.
      J'étais pas loin mais la y'a rien à dire à part, MERCI !
      0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    on peut simplifier, sans le while et le print
    perl -pe 's=([0-9]*)/([0-9]*)/([0-9]*)=\3-\2-\1='
    1
    1. TMart Messages postés 67 Statut Membre 7
       
      Exact ! Cela marche aussi.
      0
  3. TMart Messages postés 67 Statut Membre 7
     
    Pour plus de détails mon fichier se présente sous la forme :
    01/03/2010 03:11:50 0001 327 L34
    01/03/2010 03:12:59 0002 327 L21
    01/03/2010 03:13:42 0003 267 L23
    01/03/2010 04:14:49 0004 267 L33

    Et je souhaiterais qu'il devienne comme ça :
    2010-03-01 03:11:50 0001 327 L34
    2010-03-01 03:12:59 0002 327 L21
    2010-03-01 03:13:42 0003 267 L23
    2010-03-01 04:14:49 0004 267 L33

    Est-ce possible ? :)
    0