powershell模擬grep
最近要查份資料,需要由185M 的原始log檔案中,找出我要的關鍵字,並將有該關鍵字的那一行抓出來。做這樣的處理,馬上想到grep這指令。但…因為是使用windows的系統,只好查一下powhershell是否有grep或類似grep的指令。google一下,最後是使用 select-string 做到類似的效果。
處理完後,和一位對於shell script很熟的同事聊了一下剛剛這個處理。忽然間,有點好奇,如果用grep來處理會不會更快?於是再度把Cygwin裝起來,利用相同機器、資料做一樣的處理,做個小小的比較,整理如下表…
結果,powershell的處理速度,實在遜太多了…
附註:
執行的機器硬體配備:
CPU Intel Core2 Quad Q8200 2.33GHz
RAM 4G
Windows XP
Powershell v1
Cygwin v1.5.25-15
處理完後,和一位對於shell script很熟的同事聊了一下剛剛這個處理。忽然間,有點好奇,如果用grep來處理會不會更快?於是再度把Cygwin裝起來,利用相同機器、資料做一樣的處理,做個小小的比較,整理如下表…
Powershell | grep @ 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
留言