Modifier un fichier .log en profondeur

Résolu
Equilibrius Messages postés 95 Date d'inscription mercredi 6 juillet 2005 Statut Membre Dernière intervention 23 août 2010 - 11 janv. 2007 à 18:53
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 - 12 janv. 2007 à 08:32
Bonjour a tous,

voilà j'ai un petit problemme, j'ai un fichier .log qui fait plus de 2.5Mo (avec en gros 40'000 lignes) il contien les log de plusieur "serveur" et j'aimerai le modifier, mais pas qu'un peu, le modifier a "grande echelle", c'est a dire :

je voudrai remplacer une suite de caractére (1) pas une autre suite (2), et comme la premiére suite de caractére(1) ce répéte plus de 1800 fois dans le log, je vai pas faire sa a la main ^^

Donc j'ai eu l'idée de créer un programme, j'ai quelques bases, en batch, php, js,  et je ne sais vraiment pas quoi commencer ... Donc si quelqu'un a une idée, vraiment, Merci d'avance

Un petit Exemple :

/*--------------------[Début d'un bou du fichier en question]----------------*/
K;0;4;a
108:00 D;0;1;a]= - ^
1il___;77_;none
108:K;0;1;a]=-^1per
108:06 K o;^9A^ ;0;5;o-_naer
108:08 saL
108:15 K;0;4;;C^7] =-^K;0;1
LE_;_lo;^9A^w
108:17 K;0;3;
es;-
^4^9in- ^;0;5;;
/*--------------------[Fin d'un bou du fichier en question]----------------*/

et dans ce bou de fichier j'aimerai ramplacer les  "o;^9A^" par des "z4-3zé^1'f"

Quelques présisions :
Les caractéres a remplacer sont toujour placer en début de ligne, et ne sont jamais coupé

7 réponses

cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
11 janv. 2007 à 19:08
Salut


C'est simple :


a) Tu fais une sauvegarde de .log on sait jamais :)


b ) Ensuite si tu as dreamweaver ou autre editeur on a une fonction Chercher remplacer en fesant CTRL+F :D


Sinon En php  ca donne :

$lecture= file_get_contents ( 'URL_FICHIER');

$replace =str_replace("o;^9A^","z4-3zé^1'f",$lecture);
$fp=fopen( 'URL_FICHIER','w');

fputs($fp,$replace);

fclose($fp);


c) tu verifies est normalement c'est bon !
3
cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
11 janv. 2007 à 19:10
PS : Juste un truc j'espere quevu la taille du fichier PHP ne va pas
depasser les 30 secondes d'execution autoriser !! Sinon faudra changer
de langage !! Exemple PERL avec un script cgi !!
0
Flachy Joe Messages postés 2103 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 21 novembre 2023 1
11 janv. 2007 à 20:30
Pour que le script ne se bloque pas en cours de route :

set_time_limit(3000); //Ou plus si besoin
ignore_user_abort(true);

Flachy Joe
0
Equilibrius Messages postés 95 Date d'inscription mercredi 6 juillet 2005 Statut Membre Dernière intervention 23 août 2010
11 janv. 2007 à 20:49
Salut,

CTRL+F mdrr je connais, mais bon comme j'ai di plus haut le bou ce répéte plus de 1500 foi , sa me prendrai trop de temp ^^

Ensuite, pour le temp d'exécution du script, je vai surment le fractionner en plusieurs bout (cette foi a la main ^^)

Voilà, Merci pour vos réponce, je vais tester le script ci-dessus, et je repost la solution en totalité
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Equilibrius Messages postés 95 Date d'inscription mercredi 6 juillet 2005 Statut Membre Dernière intervention 23 août 2010
11 janv. 2007 à 21:11
Voilà le script en détail:

<?php
$lecture= file_get_contents ( './ Le nom du fichier ');
$replace =str_replace("Chose a ramplacer","Chose qui ramplace la chose a ramplacer",$lecture);
$fp=fopen( './Le nom du fichier','w');
fputs($fp,$replace);
fclose($fp);
?>

Franchement, ce bou de code ma vraiment blefé !!
hyper rapide, la page a "chargé" autan de temp que quand je vais sur google.fr, c'est trop enorme mdrr chui sur le cul

Vraiment merci a cedriclomb
et a Flachy Joe (même si je n'ai pas eu besoin de son bou de code, mias il sera surment utile dans le cas ou le fichier est vraiment enorme (plusieur 10énes des Mo a mon avis))

Et voilà encore toute la puissance du PHP démontré dans cet example !

Merci encore

Ps: c'est la premiére foi que je poste ici, et franchement phpcs.com est encore plus rapide que le site du zero pour les réponces, et surtout leurs qualités
0
cedriclomb Messages postés 275 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 27 avril 2010 1
12 janv. 2007 à 00:25
Dis voir Flashy Joe est ce que set_time_limit(3000); //Ou plus si besoin
ignore_user_abort(true);
me permettrait de remplace un script PERL pour l'upload des gros fichier 7Mo et plus ??

CTRL+F mdrr je connais, mais bon comme j'ai di plus haut le bou ce répéte plus de 1500 foi , sa me prendrai trop de temp ^^

BAh perso mois sur Dream J'ai un remplcé tout aussi rapide que php sauf que j'ai pas de ligne de code a tapper !!

MAis bon ce code est utile pour des tas de trucs apres si tu te fais une zone d'admin !
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
12 janv. 2007 à 08:32
Euh.. Pour ma part sur des traitements comme ça, j'utilise sed en ligne
de commande exécutée par PHP.. Y'a po plus rapide..idem pour grep
d'ailleurs..

S.
0
Rejoignez-nous