我需要从以下$ parse中提取字符串。
$parse = select-string -path .\xxx.log "Error" -allmatches –simplematch -context 1
字符串示例包含:
Start : Error : billing 1150116682 not found - exit. Source : /mnt/xxx/roo/foo/aaa/115565841_yyyyy.pdf ===================================================================================================================================================
我只需要提取源:/ mnt / xxx / roo / foo / aaa / 115565841_yyyyy
我该怎么办?
THX
答案 0 :(得分:0)
您可以像这样进行字符串拆分:
$array = $parse.split(':')
$lastItem = $array[-1]
然后从列表中获取所需的项目。假设你知道你需要什么。
答案 1 :(得分:0)
不要使用-SimpleMatch
因为这会阻止使用正则表达式,我们可以使用它来提取所需的子字符串。这是一个例子:
$s = "Start : Error : billing 1150116682 not found - exit. Source : /mnt/xxx/roo/foo/aaa/115565841_yyyyy.pdf"
$s | Select-String "Error : .* Source : (.*)" | ForEach-Object {
$_.Matches[0].Groups[1].Value -replace '\.pdf$', ''
}
以上输出字符串/mnt/xxx/roo/foo/aaa/115565841_yyyyy
。