Powershell-按日期对日志行排序

Powershell-按日期对日志行排序,powershell,Powershell,我是powershell的新手,需要一些有关greping和排序的帮助。我有很多日志文件,其中包含以下格式的日志: 2016-04-29T14:10:15308000+0100;通知;未知主机ID bla bla bla 我已经知道如何通过dir-r |选择字符串“bla”|..过滤特定的日志行。但是现在我想根据包含的时间戳对找到的日志行进行排序。任何提示?您可以使用排序对象按时间戳对行进行排序 要正确排序,您需要首先解析时间戳。由于时间戳中的皮秒,简单地强制转换为[datetime]类型将不起

我是powershell的新手,需要一些有关greping和排序的帮助。我有很多日志文件,其中包含以下格式的日志:

2016-04-29T14:10:15308000+0100;通知;未知主机ID bla bla bla


我已经知道如何通过
dir-r |选择字符串“bla”|..
过滤特定的日志行。但是现在我想根据包含的时间戳对找到的日志行进行排序。任何提示?

您可以使用
排序对象
按时间戳对行进行排序

要正确排序,您需要首先解析时间戳。由于时间戳中的皮秒,简单地强制转换为
[datetime]
类型将不起作用,但我们可以使用:


获取帮助-完整排序对象将帮助您;)是否真的需要时间戳提取/转换?ISO格式是字符串可排序的。
$LogLines = Get-Content .\logfile.log
$LogLines | Sort-Object { 
    # Grab the timestamp, throw the rest away
    $timestamp,$null = $_ -split ';',2
    # Parse the timestamp, Sort-Object will use the emitted DateTime to sort
    [datetime]::ParseExact($timestamp,'yyyy-MM-ddTHH:mm:ss,ffffffK',[cultureinfo]::InvariantCulture) 
}