如何使用PowerShell在日志文件中计算正则expression式匹配的实例?

我有一个非常大的日志文件,我需要计算特定string的所有变化的发生; 那是:

有大量文件ID以格式AA000 ####出现。 我必须找出这个文件中的五个或十个ID是什么(哪些出现次数最多)。

我认为这可以通过selectstring和正则expression式来完成?

如果你想突破标题部分(我猜你是),而不是基于整个URL(可能包含特定的访问信息)的组合,你需要得到的标题参数的值如下所示:

get-content "test.txt" | % {if($_ -match 'title=([^\&]+)') {$($Matches[1])}} | group | sort -desc Count 

这是我的头顶,但你应该能够做到这一点,一个class轮。

你可以把它推到一个variables中,并得到这个variables的长度,如下所示:

 $count = get-content .\test.txt | select-string -pattern "AA000" $count.length 

或者我们可以通过使用parens来进行全部内联:

 (get-content .\test.txt | select-string -pattern "AA000").length 

您可以使用group-object cmdlet进行最佳计数。

 get-content .\test.txt | group-object | export-csv out.csv 

现在这很丑陋,但你应该可以从那里走