Bonjour,
Je débute en shell. Dans le cadre d' un stage je doit réaliser un parseur en shell qui sépare les information d'un log apache par des ' | ', en les copiant dans un autre fichier.
Voici un exemple d' une ligne du log
Pour séparé j'ai choisi d'utiliser la commande sed.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 127.0.0.1 - - [21/May/2008:10:48:26 +0200] "GET /apache2-default/mon.gif?nom=dupont&prenom=christopher&age=19&date=1989-09-05 HTTP/1.1" 304 - "http://127.0.0.1/apache2-default/" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20071008 Ubuntu/7.10 (gutsy) Firefox/2.0.0.6"
J'ai réussi à séparer l'adresse ip en faisant
La première partie de la commande testé en console marche bien et remplace bien les '- - [ 'par un '|', mais j'ai un petit problème, je n'ai pas de fichier access.tmp
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -e "s/ \- \- \[/\|/g" access.log > access.tmp && mv -f access.tmp access.log
Je ne trouve pas la solution à ce problème, j' utilise sûrement mal la commande.
Une âme charitable pourrais m'aider s'il vous plaît.
Merci d'avance,
Petit edit, quand je test juste
Ca remplasse et ca copie en créant le fichier access.tmp
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed -e "s/ \- \- \[/\|/g" access.log > access.tmp
mais quand je lance avec mon script plusieurs commandes ça ne marche pas.
Partager