亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 急 access.log 的日志怎么分拆啊 [打印本頁]

作者: wzltian    時間: 2013-12-19 11:36
標(biāo)題: 急 access.log 的日志怎么分拆啊
有個access.log的日志,格式如下
123.12.67.123 - - 2013-12-15 11:42:22 "GET /index.do HTTP/1.0" 302 67 "http://aa.bb.cc/register.do?jwd=42ide" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
122.12.67.123 - - 2013-12-15 11:42:22 "POST /accl.do?name=232 HTTP/1.0" 302 67 "http://aa.bb.cc/querylist.do" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
132.12.67.123 - - 2013-12-15 11:42:22 "GET /baxe.do?a=12 HTTP/1.0" 302 67 "http://aa.bb.cc/register.do?jwd=gyujhf" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
122.12.67.123 - - 2013-12-15 11:42:22 "GET /ccdw.do HTTP/1.0" 302 67 "http://aa.bb.cc/register.do?jwd=werrrr" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"

  如何用shell分析后的結(jié)果如下啊,這個shell怎么寫呢
123.12.67.123|/index.do|http://aa.bb.cc/register.do|113.222.45.227
132.12.67.123|/accl.do|http://aa.bb.cc/querylist.do|113.222.45.227
132.12.67.123|/baxe.do|http://aa.bb.cc/register.do|113.222.45.227
作者: rabinwang    時間: 2013-12-19 11:42
有點(diǎn)小麻煩,,,思路: 先按照空格取你想要的field,,,,,在field里過濾你想要的字符串,,,,然后拼接
作者: jason680    時間: 2013-12-19 12:01
本帖最后由 jason680 于 2013-12-19 12:01 編輯

回復(fù) 1# wzltian

$ awk -F'[ ,?"]+' -vOFS="|" '{for(n=1;n++<NF;)if($n~/http:/){W=$n;n=NF};print $1,$7,W,$(NF-2)}' access.log
123.12.67.123|/index.do|http://aa.bb.cc/register.do|113.222.45.227
122.12.67.123|/accl.do|http://aa.bb.cc/querylist.do|113.222.45.227
132.12.67.123|/baxe.do|http://aa.bb.cc/register.do|113.222.45.227
122.12.67.123|/ccdw.do|http://aa.bb.cc/register.do|113.222.45.227
   
作者: wzltian    時間: 2013-12-19 12:29
  謝謝 jason680,你這個例子真是簡練, 如果再增加2個條件
1、 如果是url只取http://aa.bb.cc/xxx.do開頭的,其他的url都過濾,比如過濾掉http://www.soport.cn/等,這個怎么寫呢?
2、 后面有3個ip,其中,第三個是我想要的,但若有后面的第三個ip有時會沒有
  這是我現(xiàn)在遇到的真實(shí)情況,這個怎么寫呢?  盼復(fù)
123.12.67.123 - - 2013-12-15 11:42:22 "GET /index.do HTTP/1.0" 302 67 "http://www.soport.cn/register.do?jwd=42ide" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, "
122.12.67.123 - - 2013-12-15 11:42:22 "POST /accl.do?name=232 HTTP/1.0" 302 67 "http://aa.bb.cc/querylist.do" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
132.12.67.123 - - 2013-12-15 11:42:22 "GET /baxe.do?a=12 HTTP/1.0" 302 67 "http://aa.bb.cc/register.do?jwd=gyujhf" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
122.12.67.123 - - 2013-12-15 11:42:22 "GET /ccdw.do HTTP/1.0" 302 67 "http://aa.bb.cc/register.do?jwd=werrrr" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
作者: reyleon    時間: 2013-12-19 14:09
回復(fù) 4# wzltian
  1. sed -r 's#([^ ]+).*[(GET|POST)] +/([^ ?]+).*(http://[^(?|")]+).*" +"([^,]+).*#\1|\2|\3|\4#g' file  
復(fù)制代碼

作者: jason680    時間: 2013-12-19 14:13
本帖最后由 jason680 于 2013-12-19 14:25 編輯

回復(fù) 4# wzltian


$ awk -F'[ ,?"]+' -vOFS="|" '{for(n=1;n++<NF;)if($n~/http:/){if($n!~/aa\.bb\.cc/)next;W=$n;n=NF};IP=$(NF-3)~/\)$/?NF-2:NF-3;print $1,$7,W,$IP}' access.log
122.12.67.123|/accl.do|http://aa.bb.cc/querylist.do|126.23.22.11
132.12.67.123|/baxe.do|http://aa.bb.cc/register.do|126.23.22.11
122.12.67.123|/ccdw.do|http://aa.bb.cc/register.do|126.23.22.11

   
作者: wzltian    時間: 2013-12-19 14:39
不好意思,我剛才沒有表達(dá)清楚  如果是url只取http://aa.bb.cc/xxx.do開頭的,其他的url都過濾,比如過濾掉http://www.soport.cn/等,這個怎么寫呢?

123.12.67.123 - - 2013-12-15 11:42:22 "GET /index.do HTTP/1.0" 302 67 "http://www.soport.cn/register.do?jwd=42ide" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, "
122.12.67.123 - - 2013-12-15 11:42:22 "POST /accl.do?name=232 HTTP/1.0" 302 67 "http://aa.bb.cc/querylist.do" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
132.12.67.123 - - 2013-12-15 11:42:22 "GET /baxe.do?a=12 HTTP/1.0" 302 67 "http://aa.bb.cc/register.do?jwd=gyujhf" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
122.12.67.123 - - 2013-12-15 11:42:22 "GET /ccdw.do HTTP/1.0" 302 67 "http://aa.bb.cc/register.do?jwd=werrrr" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" "126.23.22.11" "113.222.45.227, 127.0.0.1"
----------------- 過濾掉不是以http://aa.bb.cc 這些url請求的,即只要http://aa.bb.cc這樣的請求。 下面是我想要的結(jié)果----------
2013-12-15 11:42:22|/accl.do|http://aa.bb.cc/querylist.do|126.23.22.11
2013-12-15 11:42:22|/baxe.do|http://aa.bb.cc/register.do|126.23.22.11
2013-12-15 11:42:22|/ccdw.do|http://aa.bb.cc/register.do|126.23.22.11
作者: q1208c    時間: 2013-12-19 14:54
我覺得樓主的問題如果用 perl 來寫一段 會比較容易. 用 shell 來處理一次還可以, 以后要維護(hù)的話, 成本可能不低于 perl.
作者: wzltian    時間: 2013-12-19 15:52
回復(fù) 6# jason680

謝謝了,剛看到你回復(fù)
  

   
作者: wzltian    時間: 2013-12-19 15:54
回復(fù) 5# reyleon

  謝謝啊,你的這個方法也好
   
作者: reb00t    時間: 2013-12-20 19:33
  1. awk 'BEGIN{OFS="|"}{gsub(/?.*/,"",$7);gsub(/?.*|"/,"",$11);gsub(/,127.0.0.1|"/,"",$NF);print $1,$7,$11,$NF}'
復(fù)制代碼
  1. 123.12.67.123|/index.do|http://aa.bb.cc/register.do|113.222.45.227
  2. 122.12.67.123|/accl.do|http://aa.bb.cc/querylist.do|113.222.45.227
  3. 122.12.67.123|/ccdw.do|http://aa.bb.cc/register.do|113.222.45.227
復(fù)制代碼





歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2