powershell模擬grep

最近要查份資料,需要由185M 的原始log檔案中,找出我要的關鍵字,並將有該關鍵字的那一行抓出來。做這樣的處理,馬上想到grep這指令。但…因為是使用windows的系統,只好查一下powhershell是否有grep或類似grep的指令。google一下,最後是使用 select-string 做到類似的效果。

處理完後,和一位對於shell script很熟的同事聊了一下剛剛這個處理。忽然間,有點好奇,如果用grep來處理會不會更快?於是再度把Cygwin裝起來,利用相同機器、資料做一樣的處理,做個小小的比較,整理如下表…
Powershellgrep @ Cygwin
指令cat p_log.log | select-string "127.0.0.1" >
mydata.log
grep "127.0.0.1" p_log.log >mydata.log
處理時間超過25秒約2秒
CPU loading持續約25%約5%

結果,powershell的處理速度,實在遜太多了…

附註:
執行的機器硬體配備:
CPU Intel Core2 Quad Q8200 2.33GHz
RAM 4G
Windows XP
Powershell v1
Cygwin v1.5.25-15

留言