0

现在我使用这个命令来获取日志文件中模式的出现次数。

cat filename.log | grep -c 'myPattern'

问题是我只想知道两三个小时之间发生的事情。事实上,concat 两种模式识别,一种是选择文本范围来应用第二种模式识别。

我尝试这样的事情但不起作用:

cat filename.log | grep -c 'myPattern' | grep {21:,22:,23:}

我从来不明白当你连接两个或更多管道时通量是如何变化的。

日志文件示例:

20130305-22:31:36 0 0000 pcxvx28p script.ksh               1.10     FIN
20130305-22:36:36 0 0000 pcxvx28p script.ksh               1.10     DEBUT
20130305-22:31:36 0 0000 pcxvx28p script.ksh               1.10     OPERACION BUSQUEDA
20130305-22:36:36 0 0000 pcxvx28p script.ksh               1.10     numero xxx20012

注意:我使用KornShell (ksh) 提前致谢。

4

2 回答 2

1

尝试

grep -c '^20130305-2[1-3].*myPattern' your.log

date 也应该添加到模式中,因为您的日志可能包含超过一天的数据。

上面的行将计算匹配的条目21:00 -23:59:59

于 2013-03-06T12:02:29.860 回答
0

不应使用 -c 选项,因为它给出匹配行数而不是匹配行文本

grep 'myPattern' filename.log | grep '\(21:\)\|\(22:\)\|\(23:\)'
于 2013-03-06T11:18:03.973 回答