Я работаю с приложением, которое создает файл журнала. Из-за ошибки в самом программном обеспечении он продолжает производить три ошибки, которые мне не интересны. Каждая строка имеет уникальный идентификатор, поэтому я не могу просто заменить строку, поскольку каждая из них отличается.Заменить строки определенной строкой и сохранить с тем же именем
У меня есть две основные проблемы с этим: мне нужно сохранить его с тем же именем, и пока он работает, файл должен быть доступен (в случае, если регистратору необходимо что-то написать).
Я не могу жестко скопировать исходное приложение, чтобы предотвратить его запись этой части журнала.
я пытался до сих пор:
Get-Content log.log | Where-Object {$_-notmatch 'ERROR1' -And $_-notmatch 'ERROR2' -And $_-notmatch 'ERROR3' } `|Set-Content log_stripped.log
^Это работает только если выходной файл имеет другое имя.
Get-Content error.log | foreach-object { Where-Object {$_-notmatch 'ERROR1' -And $_-notmatch 'ERROR2' -And $_-notmatch 'ERROR3' } } | Set-Content error.log
^Этот застывший сеанс PS.
Я также попытался чтения файла в переменную:
$logcontent = ${h:error.log}
, но я получил System.OutOfMemoryException.
В идеале, мне нужно что-то, что читает файл журнала, забирает все строки, которые я не хочу, а затем сохраняю его с его оригинальным именем.
Идеи? (Имейте в виду, что файл журнала составляет +/- 900 МБ с ненужными данными и 45 МБ, как только я разделяю данные первым методом, но мне нужно сохранить файл с его исходным именем)
Зачем вам нужно сохранить это имя с таким же именем? Я не думаю, что это хорошая идея. Если файл заблокирован во время его записи, система регистрации может не регистрировать записи (в зависимости от того, насколько она сложна). –