我有一個接近3GB的巨大日誌文件。在Linux中優化搜索
我的任務是根據記錄日誌的次數生成一些報告。
我需要找到時間的數量StringA,StringB,StringC被單獨調用。
我在做什麼現在的問題是:
grep "StringA" server.log | wc -l
grep "StringB" server.log | wc -l
grep "StringC" server.log | wc -l
這是一個漫長的過程,我的腳本需要近10分鐘才能完成。我想知道的是,這是否可以優化?是可以運行一個grep命令並找出時間的數量StringA,StringB和StringC已被單獨調用?
您可以使用'grep -c'而不是'wc -l':'grep -c「StringA」server.log'。 'grep'不能報告單個字符串的數量。您可以使用'awk':'awk'/ StringA/{a ++;}/StringB/{b ++;}/StringC/{C++;} END {print a,b,c}'server.log'。 –
@ l3x我正準備寫一個答案,裏面包含了你在這個評論中寫下的內容,然後我看到了這個評論......關心把它變成答案? –
@BenjaminW。由於OP正在尋找「快速」解決方案,所以我不願意發佈它。我不確定這對他是否足夠快。無論如何發佈。 –