私のログ形式は次のとおりです(デモのために単純化されています)。
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
ベストアンサー1
そしてawk
:
awk -v 'start=2018-04-12 14:44:00.000' -v end='2018-04-12 14:45:00.000' '
/^[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2} / {
inrange = $0 >= start && $0 <= end
}
inrange' < your-file
mawk
POSIX文字クラスとスペース正規表現演算子がサポートされていないと機能しません。