2010-06-25 16 views
0

我努力讓自己在腳本過濾器,以實現這一目標,使過濾器:問題有關如何使用腳本

前:

123.125.66.126 - - [05/Apr/2010:09:18:12 -0300] "GET/HTTP/1.1" 302 290 
66.249.71.167 - - [05/Apr/2010:09:18:13 -0300] "GET /robots.txt HTTP/1.1" 404 290 
66.249.71.167 - - [05/Apr/2010:09:18:13 -0300] "GET /~leonardo_campos/IFBA/Web_Design_Aula_17.pdf HTTP/1.1" 404 324 

後:

[05/Apr/2010:09:18:12 -0300]/302 290 
[05/Apr/2010:09:18:13 -0300] /robots.txt 404 290 
[05/Apr/2010:09:18:13 -0300] /~leonardo_campos/IFBA/Web_Design_Aula_17.pdf 404 324 

如果有人可以幫助它會很好...

在此先感謝!

回答

1

支持所有HTTP方法:

sed 's#.*\(\[[^]]*\]\).*"[A-Z]* \(.*\) HTTP/[0-9.]*" \(.*\)#\1 \2 \3#' 
+0

Chers隊友...... 它工作正常! – Alucard 2010-06-25 12:27:00

1

這似乎是一個完美的作品「sed」。

您可以輕鬆構建一對「s」替換模式以去除不需要的線條。

1

sed是你的朋友在這裏,用regexps。

sed 's/^\(\[.*\]\) "GET \(.*\) .*" \(.*\)$/\1 \2 \3/' 
1

如果你的文件結構總是這樣,你可以只使用領域。無需複雜的正則表達式

$ awk '{print $4,$5,$7,$9,$10}' file 
[05/Apr/2010:09:18:12 -0300]/302 290 
[05/Apr/2010:09:18:13 -0300] /robots.txt 404 290 
[05/Apr/2010:09:18:13 -0300] /~leonardo_campos/IFBA/Web_Design_Aula_17.pdf 404 324