我有一个包含许多条目的日志文件。其中一些以日期开头,而另一些则不是。我想在该行中搜索本月/上个月的所有条目
"UpgradeResource] part: 3-V12345678-12-"
并计算按框分组的结果。实际上从 1 到 9 有 9 个盒子,但是如果我们再买一个盒子,就会有 10 或 11……盒子计数器总是在行尾跟着 -1。
我搜索的行如下所示:
2016-04-27 11:49:43,895 信息 [ajp-apr-8009-exec-9] [com.xxx.shared.yyy.UpgradeResource] 部分:3-V12345678-12-5-245,框:3-V12345678 -38-3-1 ... 2016-04-27 11:49:43,895 信息 [ajp-apr-8009-exec-9][com.xxx.shared.yyy.UpgradeResource] 部分:3-V12345678-12-4-112,框:3-V12345678 -38-1-1
我的结果输出应该是:
2016 年 3 月 03 日: 盒子1:10次 方框2:123次 方框3:65次 04/2016 月: 方框1:75次 盒子2:13次 方框3:147次
我在使用 powershell 方面不是很坚定,并尝试了这个,但出现错误并认为我的方法不正确:
$inputfile = "C:\temp\result.txt"
$matchstring = "(?\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}).*UpgradeResource] part: 3-V12345678-12-(?.*?), box: 3-V12345678-38-(\d{1})-1"
Get-Content $inputfile | foreach {
if ($_ -match $matchstring) {
"" | select @{n='Date';e={$matches.date}},@{n='Key';e={$matches.Key}},@{n='PD';e={$matches.PD}}
}
}
我得到的错误:
"(?\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}).*UpgradeResource] 部分: 3-V12345678-12-(?.*?),方框:3-V1001686-38-(\d{1})-1" 线分析仪 - Unbekanntes Gruppierungskonstrukt。 在 C:\temp\count.ps1:16 Zeichen:6 + if ($_ -match $matchstring) + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OperationStopped: (:) [], ArgumentException + FullyQualifiedErrorId : System.ArgumentException