非常に大きなログ ファイルには次のようなエントリがあります。
somecompany.somepackage.datacontrol.provider.DataProvider@ に入るフローc37ae61。リリース()
エントリ間で異なるのは、 の前後の文字列@
(.release()
太字部分) のみです。
検索で破棄する必要がある次のようなエントリが他にもあります。
somecompany.somepackage.datacontrol.provider.DataProvider@ に入るフローc37ae61.その他()
私の検索パターンは次のように終わるはずです.release()
。
ログ ファイル内のこのような発生回数 (一致する行の数) を把握し、一致するすべてのパターンを印刷するにはどうすればよいでしょうか?
PS: Linux 環境を使用しています。
答え1
オプションは排他的だと思いますgrep -c
。-c オプションを他のオプションと組み合わせて一致する行を出力することはできません。そしてカウント。teeを使用すると、一致するものが出力されますそして一致した内容を一時ファイルに書き込み、ファイル内の行数をカウントします。
grep 'FLOW ENTERING.*release()' k | tee /tmp/grep.tmp && wc -l /tmp/grep.tmp
答え2
使用できます
grep '.release()' file|wc -l