Hej, jeg prøver at gøre mig lidt klog på sed, men jeg ramler ind i
nogle problemer. Jeg prøver at parse en apache logfil for nogle
bestemte IP-adresser samt nogle bestemte filer, men ekskludere hvis en
bestemt UA har adspurgt en bestemt fil.. F.eks. IP xxx.xxx.xx.x
adspørger filen fil1.html, den vil jeg gerne fange. IP zxy.yzx.xxx.x
adspørger fil1.html, men er det en mac har jeg ikke lyst til at fange
den med sed.
Pt prøver jeg med følgende (på een linie):
sed -n '/PPC/!s/\(xxx.xxx.xx.x\|zxy.yzx.xxx.x\|fil1.html\)/&/p'
apachelog > resultat.txt
Det giver imidlertidig en tom resultat.txt-fil. Hvis jeg fjerner
regexp sætningen med paranteserne, altså
\(xxx.xxx.xx.x\|zxy.yzx.xxx.x\|fil1.html\), så får jeg fint alle hits
fra loggen, hvor UA-strengen *ikke* indeholder 'PPC'.
Jeg tror der er et eller andet helt grundlæggende jeg gør forkert med
min regexp syntax, men er der nogle der kan at udpege det for mig?
--
| Jonas @ 55.75, 12.42 | <
http://verture.net/> |
If it isn't broken, fix it till it is