Question sur egrep
tlep
Messages postés
597
Statut
Membre
-
jackemon Messages postés 14 Statut Membre -
jackemon Messages postés 14 Statut Membre -
Bonjour,
j'ai un fichier de logs apache formaté comme suit:
xx.xx.xx.xx 80 - - [06/Jul/2008:06:38:55 +0200] "GET /images/produits/1214560165.jpg HTTP/1.1" 200 7085 "https://www.ovh.co.uk/mail/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
xx.xx.xx.xx 80 - - [06/Jul/2008:06:38:56 +0200] "GET /images/produits/1214559700.jpg HTTP/1.1" 200 6701 "https://www.ovh.co.uk/mail/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
J'essaie de trouver une expression régulière rapide, pour récupérer les infos de date ("06/Jul/2008") et d'urls (après GET: "/images/produits/1214560165.jpg")
Le mieux que j'aie trouvé, c'est celà :
egrep -o ":digit:{2}/[a-zA-Z]{2,4}/:digit:{4}::digit:{2}::digit:{2}::digit:{2}:space:+\+:digit:+]:space:+\"GET:space:+/*[^ |?]*" access.log
Ce qui me renvoie des infos type :
06/Jul/2008:06:38:57 +0200] "GET /images/produits/1215094068.jpg
06/Jul/2008:06:38:58 +0200] "GET /images/produits/1201532338.jpg
06/Jul/2008:06:38:58 +0200] "GET /images/produits/1211190996.jpg
Le souci, c'est que je veux récupérer les infos sans les minutes et secondes: soit
06/Jul/2008 /images/produits/1211190996.jpg
06/Jul/2008 /images/produits/1215094068.jpg
Ceci afin de faire après un |sort|uniq, et trouver chaque fichier distinctement checké, jour par jour.
Avez-vous une idée ?
Merci pour votre aide !
j'ai un fichier de logs apache formaté comme suit:
xx.xx.xx.xx 80 - - [06/Jul/2008:06:38:55 +0200] "GET /images/produits/1214560165.jpg HTTP/1.1" 200 7085 "https://www.ovh.co.uk/mail/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
xx.xx.xx.xx 80 - - [06/Jul/2008:06:38:56 +0200] "GET /images/produits/1214559700.jpg HTTP/1.1" 200 6701 "https://www.ovh.co.uk/mail/" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
J'essaie de trouver une expression régulière rapide, pour récupérer les infos de date ("06/Jul/2008") et d'urls (après GET: "/images/produits/1214560165.jpg")
Le mieux que j'aie trouvé, c'est celà :
egrep -o ":digit:{2}/[a-zA-Z]{2,4}/:digit:{4}::digit:{2}::digit:{2}::digit:{2}:space:+\+:digit:+]:space:+\"GET:space:+/*[^ |?]*" access.log
Ce qui me renvoie des infos type :
06/Jul/2008:06:38:57 +0200] "GET /images/produits/1215094068.jpg
06/Jul/2008:06:38:58 +0200] "GET /images/produits/1201532338.jpg
06/Jul/2008:06:38:58 +0200] "GET /images/produits/1211190996.jpg
Le souci, c'est que je veux récupérer les infos sans les minutes et secondes: soit
06/Jul/2008 /images/produits/1211190996.jpg
06/Jul/2008 /images/produits/1215094068.jpg
Ceci afin de faire après un |sort|uniq, et trouver chaque fichier distinctement checké, jour par jour.
Avez-vous une idée ?
Merci pour votre aide !
Configuration: Windows XP Firefox 2.0.0.14
2 réponses
-
interrese toi au script AWK ou meme perl qui grace a ses expresions regulieres permettent ce genre de tri.
Mais prepare toi a eplucher quelque tuto avant d'etre a l'aise.
AWK ou PERL et Expressions regulieres tu va t en sortir avec ca. -
bonjour
je voudrais ton aide sur une ptite question voila peux tu me dire comme écrire cette commande sous linux
une commande qui affiche les 3 premières lignes d'un fichier
et une commande qui affiche les 5 dernières lignes de ce fichier puis Combinez les deux commandes précédentes sur une seule ligne, afin que les trois premières
et les 5 dernières lignes soit affichées en meme temps.....
merci de me répondre