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
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"
Pour séparé j'ai choisi d'utiliser la commande sed.
J'ai réussi à séparer l'adresse ip en faisant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sed -e "s/ \- \- \[/\|/g" access.log > access.tmp && mv -f access.tmp access.log
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
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sed -e "s/ \- \- \[/\|/g" access.log > access.tmp
Ca remplasse et ca copie en créant le fichier access.tmp
mais quand je lance avec mon script plusieurs commandes ça ne marche pas.