Bonjour à tous,
Je suis en train d'écrire un script qui à pour but de parser un fichier de logs et d'en sortir uniquement les infos qui m'intèresse.
Les infos dans ce fichier sont sous cette forme :
Ceci est l'exemple pour une requête mais le fichier en contient des milliers.
================New Request: [GET /brol/brol/ HTTP/1.1] =================
Thu Aug 5 14:06:25 2010 <208612810099851> INFO: SSL is not configured
Thu Aug 5 14:06:25 2010 <208612810099851> Using Uri /brol/brol/
Thu Aug 5 14:06:25 2010 <208612810099851> After trimming path: '/brol/brol/'
Thu Aug 5 14:06:25 2010 <208612810099851> The final request string is '/brol/brol/'
.
.
.
.
.
.
Thu Aug 5 14:06:25 2010 <208612810099851> canRecycle: conn=1 status=302 isKA=1 clen=-1 isCTE=1
Thu Aug 5 14:06:25 2010 <208612810099851> request [/brol/brol/] processed successfully..................
J'ai besoin de parser ce fichier en extrayant seulement la première (New Request) et la derniere (processed successfully) ligne de la requête et ceci pour toutes les requêtes dans le fichier de log.
Voici mon script :
Malheureusement, il ne m'affiche rien, le script n'entre pas dans le if.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #!/bin/bash while read ligne; do #echo $ligne if [[ "$ligne" == "*New Request*" ]]; then echo $ligne read ligne_interne echo $ligne_interne while [[ "$ligne_interne" != "*processed successfully*" ]; do read ligne_interne done fi done < stats.log
Voyez vous le soucis? Je n'ai pas d'erreur au moment où j'exécute le script.
Je travaille sous Solaris 8.
Vous voyez quelque chose?
Merci d'avance pour votre aide.
Partager