我试图在许多文件中找到从许多模式之一开始的行(日志解析(
有比更好的解决方案吗
Get-ChildItem -Filter *DBLog.txt | ForEach-Object {
$name = $_.Name
Get-Content -Path $_.FullName |
Select-String -Pattern '^Msg*' |
Select-Object @{Name='File Name'; Expression={$name}}, LineNumber, Line
} |
Out-GridView
不幸的是,上面的脚本只搜索一个模式,而使用Where-Object
,我没有找到该模式的行号。
看起来我让它变得不必要的复杂;(
Select-String -Path *DBLog.txt -Pattern '^Msg|^Warn' |
Select-Object FileName, LineNumber, Line |
Out-GridView
但我还有一个问题…你怎么在上面加一行?我要查找的内容(SQL Server错误(分为两行:
消息208,级别16,状态1,服务器LOCALHOST,行9
无效对象名称…
而Select-String
将只返回第一行