Bonjour,
J'ai écris le script ci-desous pour parser mes logs, cependant je le trouve très long a s'exécuter (environ 20 à 30 min pour des fichiers de 200Mo), et je pense qu'il est possible de l'optimiser.
Mes logs sont comme cela :
L'objectif de mon script est de séparer les logs dans des fichiers différents selon leur type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 //stock.log xxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxx xxxxxxxxxxxx xxxxx [Stock GTA - Live] xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxx xxxxxx xxxxxxxxx [Stock GTA - Live] xxxxxxxxxxx xxxx xxxxxxx xxx [Stock GTA - Preview] xxxx xxxxx xxxxxxxx xxxxxx [Stock LODI - Live] xxxxxxxxxxxxxx xxxxxxxxxxxxxxx xxxxxxx xxxxxx [Stock LODI - Preview]xxxxxxxx xxxx xxxxxxx xxx [Stock GTA - Preview] xxxx xxxxxxxxxxx xxxxxxxx xxxxxx
-tous les logs suivants une ligne contenant "[Stock GTA - Preview]" sont extraits dans le fichier gtapreview.log
-tous les logs suivants une ligne contenant "[Stock GTA - Live]" sont extraits dans le fichier gtalive.log
-tous les logs suivants une ligne contenant "[Stock LODI - Preview]" OU [Stock LODI - Live] sont extraits dans le fichier lodi.log
Voici mon script bash :
J'ai fait ce script en 1 journée sans connaissance préalable du batch, je n'ai donc pas trop de recul..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 @echo off setlocal enableextensions enabledelayedexpansion set last="" for /f "tokens=*" %%a in (stock.log) do ( set tst=%%a rem log GTA LIVE set tst=!tst:[Stock GTA - Live]=! if not !tst!==%%a ( echo %%a >> gtalive.log set last=gtalive.log ) else ( rem log GTA PREVIEW set tst=!tst:[Stock GTA - Preview]=! if not !tst!==%%a ( echo %%a >> gtapreview.log set last=gtapreview.log ) else ( rem log LODI set tst=!tst:[Stock LODI=! if not !tst!==%%a ( echo %%a >> lodi.log set last=lodi.log ) else ( rem log idem last if not !last! == "" ( echo %%a >> !last! ) ) ) ) )
Faudrait t-il utiliser un autre langage pour gagner en performance ?
Faudrait t'il s'y prendre autrement au niveau du code ?
PS: à par le temps d’exécution, j'ai un autre problème, les lignes vides sont supprimées par mon script
Merci d'avance pour votre aide![]()
Partager