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

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 5608 | 回復(fù): 16
打印 上一主題 下一主題

[待解決]日志截取代碼優(yōu)化 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-07-10 12:20 |只看該作者 |倒序瀏覽
想要的效果是: 截取日志段,并取前面20行,再加后面20行,代碼如下,效率超低!請達(dá)人幫忙修改一下:

#!/bin/bash
start=20
end=20
logfile=temp.txt
rs=rs.`date +%Y%m%d_%H%M%S`.txt

# script start
unset a
unset b
unset c
unset var1
unset var2

a=`cat -n $logfile |awk '{if($0 ~ /Exception/){print $1}}'`
c=`awk 'END{print NR}' $logfile`

for i in $a;do
  if(($i<=$start));then
        var1=1      
   else
        var1=$(($i-$start))
   fi
  while [ $i ];do
    i=$(($i+1))
    b=`awk '{if($0 ~/^[0-9A-Za-z]/){if(NR=='$i')print NR}}' $logfile`

    if [ -z $b ] ; then
      continue
    else
        var2=$(($b+$end))
            if(($var2 > $c));then
                var2=$c
            fi
      break
    fi     
  done
  sed -n "$var1,${var2}p" $logfile 1>>$rs
  echo ..................................... 1>>$rs
done



日志文件片段如下,紅色為我想匹配的代碼段,再附加上前20行后20行,以Exception作為關(guān)鍵字:

INFO: Jk running ID=1 time=0/18  config=null
Jul 6, 2009 5:06:05 PM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Jul 6, 2009 5:06:05 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 3246 ms
17:07:05,137 DEBUG ManagerBase:677 - Start expire sessions StandardManager at 1246871225137 sessioncount 0
17:07:05,138 DEBUG ManagerBase:685 - End expire sessions StandardManager processingTime 1 expired sessions: 0
17:07:56,804 DEBUG GuiceRpcServlet:49 - begin processCall!
17:07:56,813 ERROR [guiceService]:260 - Servlet.service() for servlet guiceService threw exception
com.google.gwt.user.client.rpc.InvocationException: please login!
        at jsw.crm.server.util.GuiceRpcServlet.doUnexpectedFailure(GuiceRpcServlet.java:104)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:115)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:18
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:54
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:52
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:619)

Caused by: jsw.crm.client.NotLoginException: user not login!
        at jsw.crm.server.util.GuiceRpcServlet.getLoginUser(GuiceRpcServlet.java:32)
        at jsw.crm.server.util.GuiceRpcServlet.processCall(GuiceRpcServlet.java:50)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:102)
        ... 17 more
17:08:05,142 DEBUG ManagerBase:677 - Start expire sessions StandardManager at 1246871285142 sessioncount 1
17:08:05,142 DEBUG ManagerBase:685 - End expire sessions StandardManager processingTime 0 expired sessions: 0
17:08:05,310 DEBUG GuiceRpcServlet:49 - begin processCall!
17:08:05,311 ERROR GuiceRpcServlet:102 - rpc service error!

[ 本帖最后由 hidinga 于 2009-7-10 13:30 編輯 ]

論壇徽章:
0
2 [報告]
發(fā)表于 2009-07-10 12:26 |只看該作者
你這里貼的之有想要的結(jié)果,
那這段結(jié)果和原日志有什么樣的關(guān)系呢 ?紅色部分的特征是什么?

論壇徽章:
1
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-24 06:20:00
3 [報告]
發(fā)表于 2009-07-10 13:05 |只看該作者
樓主想表達(dá)啥意思,看得暈頭轉(zhuǎn)向

http://bbs2.chinaunix.net/thread-1502745-1-1.html 這里不是有人給出答案了嗎?

如果不是這樣的要求的話那到底是怎樣的?

跑了樓主的腳本,結(jié)果是匹配行的前面20行+匹配行本身+匹配行后面21行,是這個意思嗎?

[ 本帖最后由 Minsic 于 2009-7-10 13:24 編輯 ]

論壇徽章:
0
4 [報告]
發(fā)表于 2009-07-10 13:28 |只看該作者

回復(fù) #3 Minsic 的帖子

感謝大家,我想表達(dá)的不是那個意思,

我想要的是:

匹配行的前面20行+匹配行本身+首字縮進(jìn)的段(紅色部份)+匹配行后的首字不縮進(jìn)行開始后面20行

[ 本帖最后由 hidinga 于 2009-7-10 13:31 編輯 ]

論壇徽章:
0
5 [報告]
發(fā)表于 2009-07-10 13:31 |只看該作者
什么叫匹配行?匹配到"Exception"的行后面的以空格開頭的連續(xù)行?

論壇徽章:
1
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-24 06:20:00
6 [報告]
發(fā)表于 2009-07-10 13:44 |只看該作者

回復(fù) #4 hidinga 的帖子

“匹配行后的首字不縮進(jìn)行開始后面20行”

這個是什么?是說包含Exception關(guān)鍵字后面的行有兩種情況:一種是首字縮進(jìn)?一種是首字頂格?如果是前者就輸出包含Exception關(guān)鍵字那行后面連續(xù)的首字縮進(jìn)的行,如果首字頂格就輸出包含Exception關(guān)鍵字下面的20行?

論壇徽章:
0
7 [報告]
發(fā)表于 2009-07-10 15:53 |只看該作者
原帖由 Minsic 于 2009-7-10 13:44 發(fā)表
“匹配行后的首字不縮進(jìn)行開始后面20行”

這個是什么?是說包含Exception關(guān)鍵字后面的行有兩種情況:一種是首字縮進(jìn)?一種是首字頂格?如果是前者就輸出包含Exception關(guān)鍵字那行后面連續(xù)的首字縮進(jìn)的行,如果 ...




匹配行后的從首字不縮進(jìn)行開始后面20行”

就是說從Exception關(guān)鍵字之后的,縮進(jìn)的要全部包含在范圍內(nèi),首次出現(xiàn)不縮進(jìn)的行開始再往下再包含20行,Exception關(guān)鍵字之前的20行也要包含在里面


我要的整個范圍是:

20行
Exception所在的行
    縮進(jìn)的行
    縮進(jìn)的行
20行

[ 本帖最后由 hidinga 于 2009-7-10 15:56 編輯 ]

論壇徽章:
0
8 [報告]
發(fā)表于 2009-07-10 16:19 |只看該作者

回復(fù) #7 hidinga 的帖子

你舉的例子里:
"com.google.gwt.user.client.rpc.InvocationException"的縮進(jìn)行結(jié)束后馬上又是一個包含"Exception"的"Caused by: jsw.crm.client.NotLoginException",這樣的要怎樣?

論壇徽章:
0
9 [報告]
發(fā)表于 2009-07-10 16:26 |只看該作者
原帖由 kwokcn 于 2009-7-10 16:19 發(fā)表
你舉的例子里:
"com.google.gwt.user.client.rpc.InvocationException"的縮進(jìn)行結(jié)束后馬上又是一個包含"Exception"的"Caused by: jsw.crm.client.NotLoginException",這樣的要怎樣?




從這行開始,把后面20行包含進(jìn)來就可以了,當(dāng)下一個關(guān)鍵詞的時候又包含一次! 我上面的代碼是這么寫的,因為這個地方不是很好處理!

論壇徽章:
1
數(shù)據(jù)庫技術(shù)版塊每日發(fā)帖之星
日期:2016-01-24 06:20:00
10 [報告]
發(fā)表于 2009-07-10 17:08 |只看該作者
未作詳細(xì)的測試:

  1. awk '{a[NR]=$0}END{for(i=1;i<=NR;i++){if(a[i]~/Exception/){s=(i-20<0?1:i-20);e=i+1;while(a[e]~/^[ ]+/)e++;e=(e+19>NR?NR:e+19);for(j=s;j<=e;j++)print a[j]}}}' urfile
復(fù)制代碼
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP