我需要两个匹配模式之间的行数

use*_*309 3 sed text-processing

我的输入如下 -

[11/Jul/2016:13:40:43 +0000] "POST --" 200 - 7
[11/Jul/2016:13:40:43 +0000] "POST --" 200 - 7
[11/Jul/2016:13:40:47 +0000] "POST --" 200 - 7
[11/Jul/2016:13:40:47 +0000] "POST --" 500 - 7
[11/Jul/2016:13:41:48 +0000] "POST --" 200 - 7
[11/Jul/2016:13:41:49 +0000] "POST --" 500 - 7
[11/Jul/2016:13:42:12 +0000] "POST --" 500 - 7
Run Code Online (Sandbox Code Playgroud)

我想要输入 13:40 到 13:41 之间的行数,在这种情况下计数为 6。

我尝试了以下选项

echo sed -n '/^START_TIME/,/^END_TIME/ p' somelogfile.log | wc -l

echo sed -n '/^13:40:43$/,/^13:41:43$/ p' somelogfile.log | wc -l
Run Code Online (Sandbox Code Playgroud)

但我总是得到 1。

有人可以检查并让我知道这里出了什么问题吗?

Jay*_*got 5

echo只生成一行并且wc计算该行。

请注意,结束时间戳不存在13:41:43,并且使用的锚点(^$)过于严格。

删除echo并尝试这个:

sed -n '/13:40:43/,/13:41:49/p' somelogfile.log | wc -l
Run Code Online (Sandbox Code Playgroud)