Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/04/2012, à 10:15

Kev024

Commande, pour trier des logs (supprimer une partie)

Bonjour,

J'ai un fichier de log de apache2. Et je souhaite faire le tri dedans, pour garder uniquement ceux qui m'intéresse.
Voici une des lignes des logs :

195.214.246.119 - demonstration [02/Apr/2012:11:33:24 +0200] "GET /fichiers/Drivers/Machines/3310/ HTTP/1.1" 200 644 "https://www.monNomDeDomaine.com/fichier … /Machines/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.142 Safari/535.19"

Et je souhaiterai supprimée tout ce qui se trouve après HTTP/1.1 jusqu'au saut de ligne non inclus (\n). Mais impossible de trouver la syntaxe pour faire ça.

J'ai trouvé une commande intéressante : sed -i "s/Aremplacer/RemplacerPar/g" script.txt
Mais la ligne que je souhaite supprimer n'est jamais la même, et je ne connais pas la syntaxe pour dire : A partir de HTTP/1.1 jusqu'à \n, supprimer.

Merci d'avance.

Hors ligne

#2 Le 03/04/2012, à 10:29

Baronsed

Re : Commande, pour trier des logs (supprimer une partie)

Petit est un outil en ligne de commande pour trier/étudier les logs (doublons, etc.) - jamais testé.
http://packages.ubuntu.com/oneiric/petit

Hors ligne

#3 Le 03/04/2012, à 10:33

Kev024

Re : Commande, pour trier des logs (supprimer une partie)

Je regarde, merci.

Même si le but est au final crée le scripts par moi-même.

EDIT : J'ai trouver cette commande : sed -i '/HTTP\/1.1/,/\n/d' script.txt
Mais cela supprime toutes les lignes qui contient HTTP/1.1, pas super super.

Dernière modification par Kev024 (Le 03/04/2012, à 10:53)

Hors ligne

#4 Le 03/04/2012, à 11:56

Kev024

Re : Commande, pour trier des logs (supprimer une partie)

J'ai trouver une solution après 1 journée de recherche, quelque chose de simple et efficace.
Un saut de ligne pour séparer ceux que je garde a ceux que je supprime et je supprime les ligne qui commence par HTTP.

sed -i "s/HTTP/\nHTTP/g" script.txt
sed -i '/HTTP/d' script.txt

Hors ligne

#5 Le 03/04/2012, à 12:04

Postmortem

Re : Commande, pour trier des logs (supprimer une partie)

Salut,
En plus simple et ça sauvegarde ton fichier en .SAV au cas où :

sed -i'.SAV' 's#\(HTTP/1\.1"\).*#\1#' fichier

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#6 Le 03/04/2012, à 12:10

pingouinux

Re : Commande, pour trier des logs (supprimer une partie)

Bonjour,
Ceci devrait marcher :

sed -i 's#HTTP/1\.1.*$##' script.txt

Édité : Grillé par Postmortem pendant que je testais. Il y a une petite différence dans nos résultats : je supprime à partir de HTTP inclus.

Dernière modification par pingouinux (Le 03/04/2012, à 12:13)

Hors ligne

#7 Le 03/04/2012, à 18:32

Postmortem

Re : Commande, pour trier des logs (supprimer une partie)

pingouinux a écrit :

Bonjour,
Ceci devrait marcher :

sed -i 's#HTTP/1\.1.*$##' script.txt

Édité : Grillé par Postmortem pendant que je testais. Il y a une petite différence dans nos résultats : je supprime à partir de HTTP inclus.

J'ai hésité à enlever le HTTP aussi mais je me suis dit que non car il ne resterait qu'une double-quote dans la ligne et je trouvais pas ça très logique ! Alors j'ai pas fait comme le monsieur a demandé !

Dernière modification par Postmortem (Le 03/04/2012, à 18:32)


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne