2016-06-26 33 views
0

我有10k個html文件,其中約3k包含youtube視頻嵌入代碼,所以我搜索字符串以獲取這些文件的列表,如下所示:搜索多個文件中的字符串在powershell中第一次出現後轉到下一個文件

$LocalListOfYTPosts = Get-ChildItem "$outputfolder*.html" -recurse | 
    Select-String -pattern "https://www.youtube.com/embed" | 
    group path | 
    select name -ExpandProperty Name 

的Youtube嵌入代碼包含每個文件只有一次,所以我想,我可以加快速度,如果搜索將字符串第一次發生後到下一個文件(我不知道如果這實際上是正確的)

如果在當前的字符串中找到字符串,有沒有辦法告訴PowerShell去下一個文件?

+1

嘗試'Select-String'上的'-List'選項:僅返回每個輸入文件中的第一個匹配項。默認情況下,Select-String爲它找到的每個匹配返回一個MatchInfo對象。 – Eris

+0

謝謝,這有點幫助,從39秒的時間下降到35,所以沒有太大的區別,但每一個幫助:) –

+0

你可以嘗試使用工作流程並行處理文件,但因爲這主要是IO界限,它可能會使更糟糕。儘管如此,嘗試並沒有失去。看看[this](http://stackoverflow.com/a/19727899/52598)可以用作模板的SO問題。 –

回答

1

(評論 - >應答)

嘗試在Select-String-List選項:僅

返回每個輸入文件中的第一場比賽。默認情況下,Select-String爲它找到的每個匹配返回一個MatchInfo對象。

相關問題