Мне нужна помощь в понимании логики, как я могу разобрать текстовый файл, который в настоящее время не в правильном формате, из-за которого очень сложно прочитать содержимое журнала. Текст входного файла выглядит следующим образом:Нужна помощь для разбора текстового файла
========== Test1 (1) ========== Id UTC Date/Time Message 4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Messagel Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3,4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message2 Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3.,4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message2 Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3. ========== Test2 (1) ========== Id UTC Date/Time Message 4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message2 Name='xyz', Connection='Usb', Fleet Report Id='ca9d09e7-1564-4066-8f5e-6a123456', Fleet Proxy Id ='0fsfsda7-c7e8-4bb2-9dd4-2f4c3b2498a3,4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message2 Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3.,4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message2 Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3.
Есть несколько разделов {Test1 test2 ... п}, и каждая из секций содержит несколько времени Id UTC Дата и сообщение также все разделы начинаются с
и заканчиваться
Как разместить их в табличном формате? Необходимость вывода должен быть отформатирован, как показано ниже в табличном формате:
ID UTC Date/Time Message ========== Test1 (1) ========== Id UTC Date/Time Message 4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Messagel Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3. 4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message2 Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3. 4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message3 Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3. ========== Test2 (1) ========== Id UTC Date/Time Message 4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message1 Name='xyz', Connection='Usb', Fleet Report Id='ca9d09e7-1564-4066-8f5e-6a123456', Fleet Proxy Id ='0fsfsda7-c7e8-4bb2-9dd4-2f4c3b2498a3, 4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message2 Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3, 4d1eb19c-5420-4bb2-9e21-65880eb90429 08-30T01:26:24Z Message3 Name='abz', Connection='Usb', Fleet Report Id='ca9d3457-1564-4066-8f5e-12345678', Fleet Proxy Id ='ghjfda7-c7e8-4bb2-9dd4-2f4c3b2498a3.
Это то, что я попробовал, но это не разборе все содержимое внутри текстового файла.
$file = Get-Content -path .\ViewSource.txt | Where-Object {
$_ -ne ""
} | ForEach-Object {
$_ -replace '<[^>]+>', ''
}
foreach ($line in $file) {
$elements = $line.Split(" ", [StringSplitOptions]::RemoveEmptyEntries)
[PSCustomObject]@{
Id = $elements[8]
UtcDateTime = $elements[9]
Message = $elements[10..19] -join " "
}
}
Вы забыли показать, как все разделы начинаются и заканчиваются. Также неясно, как выглядит исходный файл, когда есть несколько разделов. Для размещенного бита вы можете использовать что-то вроде '' '(Get-Content. \ 1.txt) -replace '^ (= +. +? = +) (. +)'," $ 1'r'n'r 'n' $ 2'r'n" | Out-File r: \ 2.txt -Encoding utf8''' – wOxxOm
Пожалуйста, покажите нам что-то, что вы пробовали. Ожидается, что вы, по крайней мере, продемонстрировали некоторые усилия. На данный момент это читается как запрос на запись кода, который не является тем, для чего здесь SO. – Matt
Большое спасибо за помощь ... Он начинается с
========== Test1 (1) ========== Идентификатор UTC Дата.
– Sam