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

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

Votre réponse

7 réponses

Meilleure réponse
Messages postés
277
Date d'inscription
samedi 19 novembre 2005
Dernière intervention
27 avril 2010
- 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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cedriclomb
Messages postés
277
Date d'inscription
samedi 19 novembre 2005
Dernière intervention
27 avril 2010
- 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
Messages postés
2116
Date d'inscription
jeudi 16 septembre 2004
Dernière intervention
23 septembre 2018
- 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
Messages postés
95
Date d'inscription
mercredi 6 juillet 2005
Dernière intervention
23 août 2010
- 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
Messages postés
95
Date d'inscription
mercredi 6 juillet 2005
Dernière intervention
23 août 2010
- 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
Messages postés
277
Date d'inscription
samedi 19 novembre 2005
Dernière intervention
27 avril 2010
- 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
Messages postés
2382
Date d'inscription
lundi 4 février 2002
Dernière intervention
29 décembre 2012
- 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.