У меня есть база данных из 36 .log-файлов, которые мне нужно предварительно обработать, чтобы загрузить их в фрейм данных pandas для визуализации данных в рамках python.
Чтобы привести пример одной строки в одном из файлов .log:
[16:24:42]: Downloaded 0 Z_SYSTEM_FM traces from DEH, clients (282) from 00:00:00,000 to 00:00:00,000
Из нескольких источников и постов здесь я считаю, что следующий код будет наиболее эффективным:
foreach ($f in $files){
$date = $f.BaseName.Substring(22,8)
((Get-Content $f) -match "^.*\bDownloaded\b.*$") -replace "[[]", "" -replace "]:\s", " "
-replace "Downloaded " -replace "Traces from " -replace ",.*" -replace "$", " $date"
| add-content CleanedLogs.txt
}
Переменная $date
содержит дату, соответствующий лог-файл регистрируется.
Я не могу изменить вводимые текстовые данные. Я попытался прочитать в 1,55 ГБ, используя -raw, но мне не удалось разделить полученную единственную строку после обработки всех операций.
Кроме того, я попытался использовать больше выражений регулярных выражений, но общее время выполнения не уменьшилось. Может быть, есть способ использовать grep для этих операций?
Может быть, у кого-то есть гениальная настройка, чтобы ускорить эту операцию. На данный момент эта операция занимает около 20 минут. Большое спасибо!