Замените Новые строки на пробел в совпадениях с регулярным выражением в Powershell - PullRequest
0 голосов
/ 31 января 2020

Я работаю над скриптом Powershell, где пытаюсь отредактировать файл журнала. Файл журнала имеет следующий шаблон. Я выбрал пакет из трех строк со следующим регулярным выражением: \d{2}:\d{2}:\d{2}:\d{3}\sra-agi\sTrace:.*\n){3}(?=\n)

11:20:36:645 ra-agi Trace: asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf
11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf
11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf

11:20:36:645 ra-agi Trace: asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf
11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf
11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf

Теперь я хотел бы, чтобы эти три строки были в одной строке -> удалить новые строки. Это должно выглядеть следующим образом. поэтому я получил три строки в одной строке и пустую строку между строками данных.

11:20:36:645 ra-agi Trace: asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf 11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf 11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf

11:20:36:645 ra-agi Trace: asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf 11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf 11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf

11:20:36:645 ra-agi Trace: asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf 11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf 11:20:36:645 ra-agi Trace:     asdfaa adfadaf dafadfsd adfdsfa dafsdfa dafsdfa dafdsf

Я пробовал это со следующим кодом, к сожалению, это не работает:

$filteredLog -replace '(\d{2}:\d{2}:\d{2}:\d{3}\sra-agi\sTrace:.*\n){3}(?=\n)', '(\d{2}:\d{2}:\d{2}:\d{3}\sra-agi\sTrace:.*\s){3}(?=\n)'  > newline.txt

Кто-нибудь есть идея, как я мог бы решить это? Спасибо, ребята, за вашу помощь заранее

1 Ответ

1 голос
/ 31 января 2020

Предполагается, что вы объединяете каждые три строки:

get-content file -ReadCount 3 | foreach { $_ -join ' ' } 

one two three
four five six
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...