2016-05-02 16 views
1

私はpowershellを使い慣れていないので、グレープと並べ替えに関していくつかの助けが必要です。Powershell - 日付でログを並べ替える

2016-04-29T14:10:15,308000+0100; NOTICE ; Unknown HostId bla bla bla

私はすでにdir -r | select-string "bla" | ....を経由して特定のloglinesをフィルタリングする方法を知っている:私は、次の形式でログを含むログファイルをたくさんしました。しかし今、私は、含まれているタイムスタンプに基づいて見つかったログラインを注文したいと思います。何かヒント?

+1

'は、Get-ヘルプソート-Object'がお手伝いします-full;) –

答えて

1

Sort-Objectを使用すると、タイムスタンプで行を並べ替えることができます。

正しくソートするには、最初にタイムスタンプを解析する必要があります。単に[datetime]型にキャストするためのタイムスタンプでピコ秒の動作しませんが、私たちはDateTime.ParseExact()を使用することができます。

$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) 
} 
+0

は - >を作成働いていました - >速い答えのためのthx^ – Moerwald

+0

タイムスタンプ抽出/変換は本当に必要ですか? ISO形式は文字列でソート可能です。 –

関連する問題