提取字符串Powershell



我试图从powershell中提取以下文本中的loankey:

Testerrorlog.txt:4::293:StepName:WARNING StepTime:9/9/2016 9:01:06 AM StepMessage:ERROR(KEY1:7798850,LOANKEY:11111)::POST PAYMENT StepNotes:[[WARNING]]
Testerrorlog.txt:8::299:StepName:WARNING StepTime:9/9/2016 9:01:11 AM StepMessage:ERROR(KEY1:7798870,LOANKEY:54321)::POST PAYMENT StepNotes:[[WARNING]]
Testerrorlog.txt:12::305:StepName:WARNING StepTime:9/9/2016 9:01:14 AM StepMessage:ERROR(KEY1:7798863,LOANKEY:12345)::POST PAYMENT StepNotes:[[WARNING]]

我目前已经得到以下内容来过滤错误日志,以便您看到上面的内容:

cls
$path = 'C:Testerrorlog.txt'
$script = select-string -pattern "LOANKEY:" $path
select-string -pattern "LOANKEY:(.*))" .errorlog.txt | % {"$($_.matches.groups[1])"}

那么你就会得到你想要的。如何从选择字符串中获取捕获的组?

已经提到了输入,您可以使用regex:

$txt = "Testerrorlog.txt:4::293:StepName:WARNING StepTime:9/9/2016 9:01:06 AM StepMessage:ERROR(KEY1:7798850,LOANKEY:11111)::POST PAYMENT StepNotes:[[WARNING]]",
"Testerrorlog.txt:8::299:StepName:WARNING StepTime:9/9/2016 9:01:11 AM StepMessage:ERROR(KEY1:7798870,LOANKEY:54321)::POST PAYMENT StepNotes:[[WARNING]]",
"Testerrorlog.txt:12::305:StepName:WARNING StepTime:9/9/2016 9:01:14 AM StepMessage:ERROR(KEY1:7798863,LOANKEY:12345)::POST PAYMENT StepNotes:[[WARNING]]"
$txt | % { [Regex]::Match($_, "(?<=LOANKEY:)(d+)").Value }

最新更新