парсинг файла журнала и распаковка powershell - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть это в файле журнала, и я хочу только время без (s) в новом файле журнала или в переменной, спасибо за ваш ответ.

Fri Nov 02 13:47:07 2018  time =5.803s
Fri Nov 02 14:02:10 2018  time =7.082s 

Мой код

Get-Content "logfile.txt" |
    select-string -pattern "5" |
    foreach-object{
        write-Output $_ >> "C:\Users\titi\Desktop\test.txt"
    }

1 Ответ

0 голосов
/ 05 ноября 2018

это даст информацию, которую вы, похоже, хотите ... [ ухмылка ]

# fake reading in a text file
#    in real life, use Get-Content
$InStuff = @'
Fri Nov 02 13:47:07 2018 time =5.000s
Fri Nov 02 13:47:07 2018 time =5.803s
Fri Nov 02 14:02:10 2018 time =7.082s
Fri Nov 02 13:47:07 2018 time =4.000s
Fri Nov 02 13:47:07 2018 time =3.000s
Fri Nov 02 13:47:07 2018 time =5.001s
'@ -split [environment]::NewLine

$MinimumSeconds = 5.0

$Results = foreach ($IS_Item in $InStuff)
    {
    $Seconds = [decimal]($IS_Item.Split('=')[1].Trim().TrimEnd('s'))
    if ($Seconds -gt $MinimumSeconds)
        {
        $Seconds
        }
    }

''
$Results

вывод ...

5.803
7.082
5.001

что случилось выше ...

  • разделить на '='
  • взять 2-ю часть полученного массива
  • обрезать все начальные или конечные пробелы
  • обрезать окончание 's'
  • преобразовать в [decimal] значение
  • сравнить с требуемым минимумом
  • отправить оставшийся номер в коллекцию $Results
  • показать

сохранение его обратно в файл будет использовать Set-Content. [ ухмылка ]

...