[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
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.
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:
- [PERL] Modifier date de fichier log
- Modifier dns - Guide
- Fichier rar - Guide
- Modifier liste déroulante excel - Guide
- Modifier extension fichier - Guide
- Comment réduire la taille d'un fichier - Guide
3 réponses
dubcek
Messages postés
18778
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
5 avril 2025
5 630
14 avril 2010 à 10:25
14 avril 2010 à 10:25
hello
pour modifier directement le fichier, utiliser perl -i -e ...
$ 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 ...
dubcek
Messages postés
18778
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
5 avril 2025
5 630
14 avril 2010 à 10:46
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='
perl -pe 's=([0-9]*)/([0-9]*)/([0-9]*)=\3-\2-\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
14 avril 2010 à 10:58
Exact ! Cela marche aussi.
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
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 ? :)
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 ? :)
14 avril 2010 à 10:30
J'étais pas loin mais la y'a rien à dire à part, MERCI !