У меня есть текстовый файл toto.txt с таким содержанием:
Time: 11/23/2018 17:03:46
User: NEON
Web Site: https://www.seznam.cz
Top
Time: 11/23/2018 17:05:10
User: NEON
Web Site: www.autojournal.cz%252Fstat-prodava-zabavena-auta-padouchu-budou-levnejsi-nez-jine-ojetiny-2%252F/keFrdPDIZzLJBC2fxX7EIQ?utm_source=www.seznam.cz&utm_medium=sekce-z-internetu
Top
Time: 11/23/2018 17:05:11
User: NEON
Web Site: www.autojournal.cz/stat-prodava-zabavena-auta-padouchu-budou-levnejsi-nez-jine-ojetiny-2/?utm_source=www.seznam.cz&utm_medium=sekce-z-internetu
Top
... etc. ...
Код для экспорта данных:
((Get-Content C:\Users\user\Desktop\test\toto.txt -RAW) -split '\n(?=Time:)') | % {
$x = $_ -split '\r'
New-Object PSOBJECT -Property @{
Time = [regex]::Match($x[0],'(?<=Time:\s*)\b.*\b')
User = [regex]::Match($x[1],'(?<=User:\s*)\b.*\b')
Web = [regex]::Match($x[2],'(?<=Site:\s*)\b.*\b')
}
} | out-file C:\Users\user\Desktop\test\result.txt
Проблема в том, что длинные URL-адреса (веб-сайты) не находятся в result.txt.
А мне нужна структура result.txt:
datetime; $ url, например: 2019-01-15
15: 06: 03; $ www.autojournal.cz / стат-prodava-zabavena-Auta-padouchu-BuDou-levnejsi-пег-Jiné-ojetiny-2 / utm_source = www.seznam.cz & utm_medium = sekce-г-* в Интернет 1011 *
И в result.txt я получаю: 23.11.2008 17:05:10 NEON
www.autojournal.cz% 252Fstat-prodava-zabavena-Auta-padouchu-BuDou-levnejsi-пег-Jiné-ojetiny-2% 25 ...
Дата и время, которые я могу конвертировать:
(Get-Content C:\Users\user\Desktop\test\result.txt) |
Foreach-Object {$_ -replace "([0-9]+)/+([0-9]+)/+([0-9]+)", '$3-$1-$2'} |
Foreach-Object {$_ -replace "([0-9]+):+([0-9]+):+([0-9]+)", '$1-$2-$3;$'} |
Set-Content C:\Users\user\Desktop\test\result2.txt
((Get-Content C:\Users\user\Desktop\test\toto.txt -RAW) -split'\n(?=Time:)') | % {
$x = $_ -split '\r'
New-Object PSOBJECT -Property @{
Time = [regex]::Match($x[0],'(?<=Time:\s*)\b.*\b')
User = [regex]::Match($x[1],'(?<=User:\s*)\b.*\b')
Web = [regex]::Match($x[2],'(?<=Site:\s*)\b.*\b')
} } | out-file C:\Users\user\Desktop\test\result.txt
(Get-Content C:\Users\user\Desktop\test\result.txt) | Foreach-Object {$_ -replace "([0-9]+)/+([0-9]+)/+([0-9]+)", '$3-$1-$2'} | Foreach-Object {$_ -replace "([0-9]+):+([0-9]+):+([0-9]+)", '$1-$2-$3;$'} | Set-Content C:\Users\user\Desktop\test\result2.txt