[英]How to extract several string from log files
我正在嘗試從日志文件中提取幾個字符串。 到現在為止還挺好。 但是我不知道如何從結果中僅提取所需的細節。
例
日志條目如下所示:
(DIAG:XMLRPC)(11:07:01 15/04/2019)(MEM:130590)(TID:3632)(USER:Administrator)(REMOTE:10.67.125.177:59032)(XmlRpc: called method 'QueryCreativeFilterInfoList'.31)
我可以用以下代碼解析它:
$output_file = 'C:\Copy-Test\logins.txt'
$regex = 'QueryCreativeFilterInfoList'
$files = Get-ChildItem "C:\Copy-Test\Logs"
foreach ($file in $files)
{
gc $file.FullName | select-string -Pattern $regex | Select-String -Pattern "Administrator" | Out-File -FilePath $output_file -Append
}
現在,我只想輸出數據,時間用戶名,但我不知道如何。 我看到了一些瘋狂的正則表達式的東西,但這遠遠超出了我的技能水平。
如果有人可以指導我,我將不勝感激
最簡單的方法是用)(
分隔符分割日志條目字符串,然后打印結果數組的成員。類似這樣的東西:
gc $file.FullName | select-string -Pattern $regex | Select-String -Pattern "Administrator"| foreach {
$a=$_ -split "\)\("
"$(($a[1] -split " ")[1,0] -join ' ') $($a[4].substring(5))"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.