タイムスタンプを含むログファイルがあります。私にとって幸いタイムスタンプ境界を持つログファイルのSed抽出セクション
FWIW形式はYYYY-MM-DD HH:MM:SS.sss
(ノーさらにすなわちミリ秒粒度はなく)である
私は合理的にこれらのタイムスタンプは、両方の時系列でソートされ、ユニークなことを期待することができます。
しかし、私は2つのタイムスタンプの間にあるログファイルの部分を抽出する問題に就いています。私のファイルに
最初のタイムスタンプは、私が使用しています21:28:45.631
構文は、例えば、私のファイルに21:27:57.545
最後のタイムスタンプであるさ
sed -n '/21:28:10*/,/21:28:22*/p'
これは21:28:10*
の
開始時間が、私はそれが右に開始されるように前が21:28:09.484
たように良い、これまで(21:28:10.043
から始まるタイムスタンプを提供します(私は確信してユーザー・エラー)午前いくつかの奇妙な結果を得ています場所)
しかし21:28:09*
の開始時間は、私は同じように奇数21:28:00.003
終了時刻から始まるタイムスタンプを提供します。終了時刻が21:28:22*
の場合、21:28:20.050
までのタイムスタンプが生成されますが、それ以降はタイムスタンプがあることがわかります。
2017-05-10 21:28:21.278, 901
2017-05-10 21:28:21.303, 901
2017-05-10 21:28:21.304, 901
2017-05-10 21:28:21.483, 901
2017-05-10 21:28:22.448, 901
したがって、これはsedが文字列をどのように解釈するかとは関係がありますか?私がやろうとしていることを行うための裏地が1つありますか?理想的には私はあなたが代わりに*
の.*
を使用する必要があります(つまり、この場合はミリ秒単位)
TIA
謝罪 - ちょうど発見http://stackoverflow.com/questions/23572749/perl-awk-or-sed-search-between-two-timestamps – Pascoe
awk -F '[。]' '"21:28:19" <= $ 2 && $ 2 <= "21:28:21"は秒単位の精度では動作しますが、ミリ秒間は動作しません。しかし、それは私が以前に持っていたよりも近いです(私が引用した他のSOの質問から)。 まだ1ミリ秒精度の1つのライナーを探しています。 – Pascoe
私は理論上awkを使って深夜からミリ秒を作成して印刷し、そのように境界を行うことができると認識しています。おそらく私の最高の選択肢? – Pascoe