[PERL] Modifier date de fichier log

Résolu/Fermé
TMart Messages postés 63 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 25 mars 2011 - 13 avril 2010 à 11:41
TMart Messages postés 63 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 25 mars 2011 - 14 avril 2010 à 10:58
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.
A voir également:

3 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
14 avril 2010 à 10:25
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
TMart Messages postés 63 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 25 mars 2011 7
14 avril 2010 à 10:30
... Respect, j'y suis depuis hier.
J'étais pas loin mais la y'a rien à dire à part, MERCI !
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
14 avril 2010 à 10:46
on peut simplifier, sans le while et le print
perl -pe 's=([0-9]*)/([0-9]*)/([0-9]*)=\3-\2-\1='
1
TMart Messages postés 63 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 25 mars 2011 7
14 avril 2010 à 10:58
Exact ! Cela marche aussi.
0
TMart Messages postés 63 Date d'inscription lundi 2 juillet 2007 Statut Membre Dernière intervention 25 mars 2011 7
Modifié par TMart le 13/04/2010 à 15:35
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