Question sur egrep

tlep Messages postés 597 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 !

2 réponses

allergen
 
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.
0
jackemon Messages postés 14 Statut Membre
 
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
0