YuS_2
![](http://forum.ru-board.com/board/avatars/private/YuS_2.gif)
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Задача: На основе log файла требуется производить сбор статистики в указанном, всякий раз новом, диапазоне дат. Суммируя количество отобранных в диапазоне дат строк, записываем результат "всего обращений к БД включая внешние поисковые системы" Удаляем строки соодержащие параметр "URUB", суммируем количество оставшихся после отбора строк, результат записываем как "Пользовательских обращений к БД, всего, включая загрузки, без учета обращений поисковыми системами" по итогам прежнего отбора, находим строки содержащие параметр "FT_REQUEST", суммируем, результат записываем как "Всего просмотренных документов пользователями, включая скачанные". | Тут вопросов не возникло и выборку делаем примерно так: Код: #Фильтры $fexc="\burub\b" $finc="\bft_request\b" #Отбор строк по диапазону дат: $dbeg = get-date("25.03.2017") $dend = get-date("27.03.2017") $strdat = gc fulltext.log -enc UTF8|%{ $str=get-date($($_ -replace '^.*datetime=(\d+\.\d+\.\d+)\s.*','$1')) if($str -le $dend -and $str -ge $dbeg){$_} } #Выборка из предыдущего результата, исключающая строки: $arr1 = $strdat|%{if($_ -notmatch $fexc){$_}} #Выборка из предыдущего результата, отбор строк по совпадению: $arr2 = $arr1|%{if($_ -match $finc){$_}} "всего обращений к БД включая внешние поисковые системы: "+$($strdat.count) "Пользовательских обращений к БД, всего, включая загрузки, без учета обращений поисковыми системами: "+$($arr1.count) "Всего просмотренных документов пользователями, включая скачанные: "+$($arr2.count) | А вот далее: Цитата: находим строки с параметром "READER&C21COM", суммируем, результат записываем как "Всего просмотренных страниц документа пользователями" По параметру "fulltext&C21COM=2&P21DBN", находим строки, суммируем, а результат записываем как "Всего загруженных документов пользователями из БД". | - не совсем понятно из какой конкретно выборки будем получать эти строки... но, думаю, тут уже сами сможете добавить, по аналогии с другими выборками. И вывод результатов в файл тоже, наверное, затруднений не составит? |