Powershell 选择字符串并排除?不匹配?
我需要从日志文件中选择字符串,如果它们以模式“FATAL:”开头,但如果它们包含整行“FATAL:SystemCallError:the interface is unknown.-RegisterEventSource”(由于这是一个每次系统重新启动时都会弹出的错误,我希望从选择字符串结果中排除这些行),则不需要这样做。目前,我的代码搜索所有以“FATAL:”开头的字符串,但如果整行与我引用的上面的一行匹配,我不确定如何让它排除这一点。我希望以某种方式使用selectstring和exclude或notmatch。这是我目前的代码:Powershell 选择字符串并排除?不匹配?,powershell,Powershell,我需要从日志文件中选择字符串,如果它们以模式“FATAL:”开头,但如果它们包含整行“FATAL:SystemCallError:the interface is unknown.-RegisterEventSource”(由于这是一个每次系统重新启动时都会弹出的错误,我希望从选择字符串结果中排除这些行),则不需要这样做。目前,我的代码搜索所有以“FATAL:”开头的字符串,但如果整行与我引用的上面的一行匹配,我不确定如何让它排除这一点。我希望以某种方式使用selectstring和exclud
$fatalerrors = Select-String -Pattern "FATAL:" -Path $cheflogfile
我需要不包括这样的行:
"FATAL: SystemCallError: The interface is unknown. - RegisterEventSource"
“致命:SystemCaller错误:接口未知。-RegisterEventSource”
同样值得注意的是,我要搜索的所有行都以“致命:”开头。我想这就是我被绊倒的地方。不完全确定。试试这样的方法:
gc $cheflogfile | ?{ $_.StartsWith('FATAL:') -and $_ -ne 'FATAL: SystemCallError: The interface is unknown. - RegisterEventSource'}
这将获得所有带有“致命:”的行,但不等于“致命:系统调用错误:接口未知。-RegisterEventSource”尝试以下操作:
gc $cheflogfile | ?{ $_.StartsWith('FATAL:') -and $_ -ne 'FATAL: SystemCallError: The interface is unknown. - RegisterEventSource'}
这将获得所有带有“致命:”的行,但不等于“致命:系统调用错误:接口未知。-RegisterEventSource”所有哪些行?我已经在PowerShell 2.0和5.0中试用过,效果如预期。也许您的日志文件正在将所有内容写入一行?或者你有打字错误?都是什么行?我已经在PowerShell 2.0和5.0中试用过,效果如预期。也许您的日志文件正在将所有内容写入一行?或者你有打字错误?举例总是有帮助的。请展示一些示例输入,以及您期望从中得到的输出和实际得到的输出。示例总是有帮助的。请展示一些示例输入,以及您期望从中得到的输出和实际得到的输出。