Select String搜尋字串效能問題

2021-09-06 08:26:11 字數 1438 閱讀 1794

今天在乙個指令碼中需要用到「select-string」用來查詢關鍵字,指令碼很容易就寫好了,但是在執行該指令碼的時候卻發現要將近20秒才能完成,執行效率太低了,仔細把指令碼從頭到尾看了一遍,覺得問題就是出在「select-string」身上,因為這其中要遍歷的文字檔案有6mb多大小。

因為在指令碼中很多地方需要在前一句命令的執行結果中查詢關鍵字,為了方便,都是直接通過管道符將結果傳給了「select-string」進行搜尋,這樣的搜尋結果也很容易進行二次加工,如下:

netstat -an |select-string"established"

tcp    192.168.1.12:49228     223.202.36.52:80       established

$dt =get-date

$infor =get-contentd:\setup.log |select-string"failed"

(new-timespan$dt).totalseconds

16.0019152

結果指令碼執行時間為16秒多。

既然這樣的執行效率很低,那換另一種方法試試呢,直接多檔案進行查詢,如下:

$dt =get-date

$infor =select-string-path d:\setup.log -pattern "failed"

(new-timespan$dt).totalseconds

0.3910224

指令碼執行時間才不到0.4秒,兩種方法相差了了足足40倍之多。

在第一種方法中,先是使用了「get-content」獲取文字檔案的內容,然後才使用「select-string」進行搜尋,是不是在使用「get-content」獲取文字檔案內容的時候耗時較長呢?於是又做了下面乙個試驗,如下:

$dt =get-date

$infor =get-contentd:\setup.log

(new-timespan$dt).totalseconds

$dt2 =get-date

$infor2 = $infor|select-string"failed"

(new-timespan$dt2).totalseconds

2.5481458

15.052861

兩條語句的執行時間乙個是2秒多,另乙個是15秒多,可見其耗時都遠遠多於直接使用「select-string」對檔案進行遍歷,在以後我們應該盡量避免使用第一種方法遍歷檔案。

關鍵字搜尋

關鍵字搜尋 function sercah waitmsg 已找到對應的 g keys count 處關鍵字!1 相同關鍵字查詢時返回 reading children reading box m p css span keys removeattr style removeattr id g ke...

mysql搜尋字 如何搜尋文字? MySQL的

我有這張桌子 bussid nameen keywords 500 name1 name2 keyword1 keyword2 如果使用者搜尋 keyword1或keyword2或name2或name1 我想返回bussid 5000.所以我應該使用這個查詢select from business ...

elementUI實現關鍵字搜尋 只是搜尋

有過迷茫的階段獨自走在回家的街上,當我發現路還離我很遠現在依然是像當初那麼渴望 elementui實現關鍵字搜尋 運用的elementui選擇器中的遠端搜尋功能 還沒有封裝,接下來會封裝,封裝一點點學,不著急 結構 data 登記門店 prop name class el btn from sele...