我正在尝试使用错误代码解析文件。 我只想要从文件底部第一次出现。
到目前为止,我已经有了这个正则表达式搜索错误代码编号,它返回整行与Multiline选项,但它返回文件中的所有行,而不仅仅是最后一行。
^.*?\b(639|640|460|458|664|148)\b.*$
我正在使用powershell,所以如果你有一个使用powershell的例子 - 那会很棒。
谢谢。
答案 0 :(得分:2)
假设你的正则表达式在一行上匹配是正确的,那么你应该可以这样做:
$pattern = '^.*?\b(639|640|460|458|664|148)\b.*$'
$content = Get-Content c:\somefile.txt
for ($i = $content.Length - 1; $i -ge 0; $i--) {
if ($content[$i] -match $pattern) {
$matches[1]
break
}
}
答案 1 :(得分:1)
我会使用Select-String
:
$filename = 'C:\path\to\input.txt'
$pattern = '\b(639|640|460|458|664|148)\b'
Get-Content $filename | Select-String $pattern | select -Last 1