在一個非常大的日誌檔案中,我有以下條目:
進入 somecompany.somepackage.datacontrol.provider.DataProvider@ 的流程c37ae61。
條目之間唯一的差異是之前@
和之後的字串.release()
(粗體部分)。
還有其他類似以下的條目需要在搜尋中丟棄:
進入 somecompany.somepackage.datacontrol.provider.DataProvider@ 的流程c37ae61.somethingelse()
所以我的搜尋模式應該以.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