0

ここで、このコマンドを使用して、ログ ファイル内のパターンの発生回数を取得します。

cat filename.log | grep -c 'myPattern'

問題は、2 ~ 3 時間の間の出来事だけを知りたいということです。実際には、2 つのパターン認識を連結します。1 つはテキストの範囲を選択し、2 番目のパターン認識を適用します。

私はこのようなものを試してみましたが、うまくいきません:

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

2 つ以上のパイプを連結したときにフラックスがどのように変化するかを理解したことがありません。

ログ ファイルの例:

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

ログには 1 日以上のデータが含まれる可能性があるため、日付もパターンに追加する必要があります。

上記の行は、一致したエントリをカウントします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 に答える