本文共 1199 字,大约阅读时间需要 3 分钟。
这是国外某大学QA的一道作业题,读取mainlog文件中的每一行信息,并获取有效的信息,也就是每条信息中第四个@后面的内容,然后进行分类与计数,要求是用Perl写,但我是用PowerShell完成的,文件截图如下:
代码如下:
1 <# 2 $logPath = "C:\Users\tylan\Desktop\mainlog.txt" 3 #> 4 function CheckInfo 5 { 6 param($logPath) 7 $logContent = Get-Content $logPath 8 $reg = "^.+@.+@.+@.+@.+$" 9 $categories = "",""10 foreach($log in $logContent)11 {12 if($log -match $reg)13 {14 $partialLog = $log.split("@")15 $category = $partialLog[4]16 $categories += $category17 }18 }19 $sortResult = $categories|Sort-Object|Get-Unique20 foreach($cate in $sortResult)21 {22 $cate|Add-Member -MemberType NoteProperty -Name "cateCount" -Value 023 }24 foreach($category in $categories)25 {26 foreach($cate in $sortResult)27 { 28 if($category -eq $cate)29 {30 $cate.cateCount ++31 }32 }33 }34 foreach($cate in $sortResult)35 {36 if($cate -ne "")37 {38 $cate + " : " + $cate.cateCount39 }40 }41 }42 $logPath = "C:\Users\tylan\Desktop\mainlog.txt"43 CheckInfo $logPath
测试结果如下:
转载地址:http://jhfbl.baihongyu.com/