У меня очень большой файл журнала, в котором мне нужно подсчитать количество вхождений всех вариантов конкретной строки; то есть:
Существует большое количество идентификаторов файлов, которые отображаются в формате AA000 ####. Мне нужно выяснить, какие пять или десять идентификаторов находятся в этом файле (какие из них появляются чаще всего).
Я полагаю, это можно сделать с помощью строки выбора и регулярных выражений?
Если вы хотите выделить только часть заголовка (что, я предполагаю, вы это делаете), а не группировать на основе всего URL-адреса (который может содержать информацию, относящуюся к этому посещению), вам необходимо получить значение параметра заголовка следующим образом:
get-content "test.txt" | % {if($_ -match 'title=([^\&]+)') {$($Matches[1])}} | group | sort -desc Count
Это не в моей голове, но вы сможете сделать это с помощью однострочника.
Вы можете вставить его в переменную и получить длину этой переменной так:
$count = get-content .\test.txt | select-string -pattern "AA000"
$count.length
Или мы можем просто сделать все это в строке, используя скобки:
(get-content .\test.txt | select-string -pattern "AA000").length
Вы можете рассчитывать максимум с помощью командлета group-object.
get-content .\test.txt | group-object | export-csv out.csv
Сейчас это довольно некрасиво, но вы сможете продолжить