我需要从日志文件中选择字符串,如果它们以“FATAL:”模式开头,但如果它们包含整个行“FATAL:SystemCallError:接口未知。 - RegisterEventSource”(因为这是一个每次系统重新启动时弹出的错误,我想从select-string结果中排除这些行)。我目前有代码搜索以“FATAL:”开头的所有字符串,但我不知道如果整行与我引用的上一行匹配,如何排除它。我希望使用Select-String并以某种方式排除或不匹配。这是我目前的代码:
$fatalerrors = Select-String -Pattern "FATAL:" -Path $cheflogfile
我需要以某种方式不包括完全相同的行:
"FATAL: SystemCallError: The interface is unknown. - RegisterEventSource"
同样值得注意的是 - 我要搜索的所有行都以“致命:”开头。我想这就是我被绊倒的地方。不完全确定。
答案 0 :(得分:2)
尝试这样的事情:
gc $cheflogfile | ?{ $_.StartsWith('FATAL:') -and $_ -ne 'FATAL: SystemCallError: The interface is unknown. - RegisterEventSource'}
这将获得与"致命的所有行:"但那不等于#34;致命:SystemCallError:界面未知。 - RegisterEventSource"