选择字符串和排除? NotMatch?

时间:2016-06-15 22:35:52

标签: powershell

我需要从日志文件中选择字符串,如果它们以“FATAL:”模式开头,但如果它们包含整个行“FATAL:SystemCallError:接口未知。 - RegisterEventSource”(因为这是一个每次系统重新启动时弹出的错误,我想从select-string结果中排除这些行)。我目前有代码搜索以“FATAL:”开头的所有字符串,但我不知道如果整行与我引用的上一行匹配,如何排除它。我希望使用Select-String并以某种方式排除或不匹配。这是我目前的代码:

$fatalerrors = Select-String -Pattern "FATAL:" -Path $cheflogfile

我需要以某种方式不包括完全相同的行:

"FATAL: SystemCallError: The interface is unknown. - RegisterEventSource"

同样值得注意的是 - 我要搜索的所有行都以“致命:”开头。我想这就是我被绊倒的地方。不完全确定。

1 个答案:

答案 0 :(得分:2)

尝试这样的事情:

gc $cheflogfile | ?{ $_.StartsWith('FATAL:') -and $_ -ne 'FATAL: SystemCallError: The interface is unknown. - RegisterEventSource'}

这将获得与"致命的所有行:"但那不等于#34;致命:SystemCallError:界面未知。 - RegisterEventSource"