我有一个非常大的日志文件,我需要计算特定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
现在这很丑陋,但你应该可以从那里走