Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Обработка текстовых файлов и вывод всех значение в один файл (http://forum.oszone.net/showthread.php?t=313080)

Snap_Naprolom 24-03-2016 13:39 2619315

Обработка текстовых файлов и вывод всех значение в один файл
 
Есть папка с файлами, где имя файла=дата (таких файлов десятки), содержимое файлов вида :

Скрытый текст
20160324.txt

192.168.0.1 65656
192.168.0.5 676711
192.168.1.23 566756
192.168.7.11 142427


Т.е адрес и за ним некое значение

Каким образом пройтись по всем файлам и вывести все в один файл с данными:
Скрытый текст
IP;20160324;20160323
192.168.0.1;65656;65657
192.168.0.5;676711;767143
192.168.1.23;566756;566759
192.168.7.11;142427;142426


В первой строке название файлов
В следующих адрес и дальше значения, разделенные табуляцией или любыми другими знаками
Готовый скрипт не прошу(в идеале было бы конечно неплохо), направьте хотя бы где почитать про такую обработку и вывод в файл

Kazun 24-03-2016 14:46 2619347

Код:

$log = "C:\log\log.txt"
$DT=New-Object DateTime
$files = Get-ChildItem *.txt | Where {[DateTime]::TryParseExact($_.BaseName,"yyyyMMdd",[CultureInfo]::InvariantCulture,"None",[ref][datetime]$dt)}

"IP;{0}" -f (($files | % {$_.BaseName}) -join ";") | Out-File $log
$files | Get-Content | Where {$_ -match "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"} | Group {$_.split(" ")[0]} | Foreach {
        "{0};{1}" -f $_.Name,(($_.Group | Foreach {$_.split(" ")[-1].Trim()}) -join ";")
} | Out-File $log -Append


Snap_Naprolom 24-03-2016 15:44 2619376

Kazun, Спасибо огромное!! Работает на 200%


Время: 20:28.

Время: 20:28.
© OSzone.net 2001-