PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : teile aus logfile schneiden ?



bob_morane77
26.06.02, 12:54
hi, habe ein prob mit logfiles ! ich möchte die bindestriche aus dem datum "schneiden" (damit alles hintereinander steht) und bei alle dateien, die ein ? haben den anhang wegschneiden ohne auch die ganze nachfolgende zeile zu löschen !

kann mir jemand helfen ?

hier mal nen logfileauszug.

2002-06-16 20:45:44 62.104.223.64 GET /www.test.de/imgs/phase1_r4_c03_f2.gif 200 324 1 "-" "-" "-"
2002-06-16 20:45:44 62.104.223.64 GET /www.test.de/imgs/phase1_r4_c05_f2.gif 200 329 1 "-" "-" "-"
2002-06-16 20:45:44 62.104.223.64 GET /www.test.de/clean022.vcs?vcsTimeStamp=1024260274240 000 186115 5011 "-" "-" "-"


thx

SeeksTheMoon
26.06.02, 14:18
mit cut und grep oder awk kommt man sicher ans Ziel, aber ich will jetzt nicht denken :D

bob_morane77
26.06.02, 14:19
ich bin ein newbie uns suche schon die ganze zeit in goggle, finde aber nichts richtiges !

BeaTtheMeaT666
26.06.02, 15:31
guck mal ins www.mrunix.de forum, da geht das eher um skripten, reguläre ausdrücke und so. vielleicht kriegst du da eher geholfen, ich bin mit sed auch noch net so fit, könnte versuchen was zu basteln, aber erst heut abend, mein gehirn is grad auf "standby" wegen der hitze......

bob_morane77
26.06.02, 15:53
da schau ich gleich mal nach danke !

micha
26.06.02, 18:26
Hi,

das hier sollte es tun, ist allerdings nicht das Schnellste. Übernehme es am Besten per Cut&Paste und ändere noch die Variable FILE auf das Logfile.



#!/bin/bash

FILE="/home/micha/log"
LINES=`sed -ne '$=' $FILE`

for (( a=1; a <= LINES; a++))
do
String="`sed -ne "${a}p" $FILE`"
Date="`echo $String | cut -d ' ' -f 1 | sed s/-//g`"
Info="`echo $String | cut -d ' ' -f 2-4`"
Url="`echo $String | cut -d ' ' -f 5 | cut -d ? -f 1`"
Rest="`echo $String | cut -d ' ' -f 6-`"
echo $Date $Info $Url $Rest
done

exit 0


Gruß micha

TommeS73
01.07.02, 11:20
in der Shell gibst Du folgendes ein:



perl -pe 's/(.+?\?).*/$1/;s/-//g;' file


als file gibst Du die zu bearbeitende Datei an.

Damit läuft das überarbeitete Skript an Dir vorüber -> oder die leitest es gleich in eine andere Datei oder pipst es durch less, grep oder was auch immer.