tail -f | sed

Didrik Madheden didrik at kth.se
Wed Apr 16 13:09:26 CEST 2008


On 16/04/2008, Harald Barth <haba at kth.se> wrote:
>  > Kanske nåt alternativ till sed som funkar bättre med tail -f?
>
>
> Låter som problem med buffringen, men här är ett exempel (testad på igloo):
>
>  # tail -f access_log.1208304000 | awk '$0 ~ "/~haba/" {print "foo "$1,$7}'
>
>  Ni har väl inte väntad er nåt annat än awk från mig?
Det lutade med att jag gick in i #unixhelp och frågade. Mitt problem
var att jag pipeade en sed in i en annan sed. Dubbelbuffring=knas.
Till slut blev det dubbla -e till en sed, som gör vad vad jag vill.
tail -f -n 100 /var/log/httpd-access.log | sed -e '/^192\.168\..*/ d'
-e 's/^/  /'

Men, då kan ju jag lika gärna fråga, hur ser motsvarande kommandon ut
om man gör samma sak med awk? (Jag vill ändå börja lära mig awk,
så...)
Utifall att du inte ser vad koden gör så filtrerar den bort requests
från mitt interna nätverk och sen lägger lägger till indentering på
varje rad. (Gör loggen mer läsbar i smala terminalfönster) Och ja, jag
borde nog lagt $ på slutet av regexen, men eftersom sed arbetar på
hela rader och eftersom * är greedy verkar det inte spela någon roll.

/Didrik


More information about the Stacken mailing list