Modifier un fichier .log en profondeur [Résolu]

Equilibrius 95 Messages postés mercredi 6 juillet 2005Date d'inscription 23 août 2010 Dernière intervention - 11 janv. 2007 à 18:53 - Dernière réponse : syndrael 2382 Messages postés lundi 4 février 2002Date d'inscription 29 décembre 2012 Dernière intervention
- 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é
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cedriclomb 277 Messages postés samedi 19 novembre 2005Date d'inscription 27 avril 2010 Dernière intervention - 11 janv. 2007 à 19:08
3
Merci
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 !

Merci cedriclomb 3

codes-sources a aidé 81 internautes ce mois-ci

Commenter la réponse de cedriclomb
cedriclomb 277 Messages postés samedi 19 novembre 2005Date d'inscription 27 avril 2010 Dernière intervention - 11 janv. 2007 à 19:10
0
Merci
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 !!
Commenter la réponse de cedriclomb
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 11 janv. 2007 à 20:30
0
Merci
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
Commenter la réponse de Flachy Joe
Equilibrius 95 Messages postés mercredi 6 juillet 2005Date d'inscription 23 août 2010 Dernière intervention - 11 janv. 2007 à 20:49
0
Merci
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é
Commenter la réponse de Equilibrius
Equilibrius 95 Messages postés mercredi 6 juillet 2005Date d'inscription 23 août 2010 Dernière intervention - 11 janv. 2007 à 21:11
0
Merci
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
Commenter la réponse de Equilibrius
cedriclomb 277 Messages postés samedi 19 novembre 2005Date d'inscription 27 avril 2010 Dernière intervention - 12 janv. 2007 à 00:25
0
Merci
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 !
Commenter la réponse de cedriclomb
syndrael 2382 Messages postés lundi 4 février 2002Date d'inscription 29 décembre 2012 Dernière intervention - 12 janv. 2007 à 08:32
0
Merci
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.
Commenter la réponse de syndrael

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.