これが私のログ形式です(デモのために簡略化されています)
2018-04-12 14:43:00.000 ERROR hello
2018-04-12 14:44:01.000 ERROR world
2018-04-12 14:44:03.000 INFO this is a multi-line log
NOTICE THIS LINE, this line is also part of the log
2018-04-12 14:46:00.000 INFO foo
では、[2018-04-12 14:44:00.000, 2018-04-12 14:45:00.000)
のログをフィルタリングして次の出力を生成する方法は?
2018-04-12 14:44:01.000 ERROR world
2018-04-12 14:44:03.000 INFO this is a multi-line log
NOTICE THIS LINE, this line is also part of the log
sed
でこれを行うことができます
sed -n '/2018-04-12 14:44:00.000/,/2018-04-12 14:45:00.000/p' log_file
これは最初のインスタンスとのみ一致することに注意してください。日付を区切り文字として使用して、その間に出力します。
awk
でも同様のことができます。
awk '/^2018-04-12 14:44:00.000.*/,/2018-04-12 14:45:00.000.*/' log_file