Мой файл данных a.alm
выглядит следующим образом:
2018-05-19 00:26:00,551 [LUNSC1 ] D_TA204_GT1_DV_AL CFN LARM D_TA204_GT1_Reglerfel
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT41_DV_AL CFN LARM D_TA204_GT41_Reglerfel
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT31_DV_AL CFN LARM D_TA204_GT31_Reglerfel
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT21_DV_AL CFN LARM D_TA204_GT21_Reglerfel
2018-05-19 00:35:19,627 [LUNSC1 ] U_TA364_GT11_LARM CFN LARM U_TA364_GT11_LARM
2018-05-19 00:39:56,135 [LUNSC1 ] U_TA364_GT11_LARM CFN LARM U_TA364_GT11_LARM
2018-05-19 00:47:12,612 [LUNSC1 ] U_KB6_GT11_DV_AL CFN LARM U-KB6-GT11 Avvikelselarm
Я хочу извлечь токены 5 и 8 в другой файл.В моем коде я читаю содержимое файла и зацикливаюсь с помощью функции split.
$alarmList = @(Get-Content -Path '.\A.ALM') | foreach {
$test = $_ -split ' '
Write-Host $test[6]" "$test[9]
} | Out-File -FilePath '.\Output.txt'
Вывод дает мне только первый токен.И я не могу понять, как правильно распечатать это в файл.Попытка замены Write-Host
на File-Output
без какого-либо хорошего результата.
D_TA204_GT1_DV_AL
D_TA204_GT41_DV_AL
D_TA204_GT31_DV_AL
D_TA204_GT21_DV_AL
U_TA364_GT11_LARM
U_TA364_GT11_LARM
U_KB6_GT11_DV_AL
U_FF415_GT46_L_AL
U_KB6_GT11_DV_AL
U_KB6_GT11_DV_AL
U_KB6_GT11_DV_AL
Я справился с этим в командной строке ранее с помощью этого сценария.
FOR /F "tokens=5" %%i in (A.alm) do echo %%i >> data.txt
Но я хотел бы сделать этов PowerShell и передайте его, чтобы иметь возможность использовать данные в уже имеющемся у меня скрипте, который подсчитывает количество случаев.
(Select-String -Path '.\data.txt' -Pattern '[^ ]+' -AllMatches).Matches.Value |
Group-Object -NoElement |
ConvertTo-Csv -Delimiter "`t" -NoTypeInformation |
Out-File -FilePath '.\Statistics.csv'
Это хорошо работает, и я понимаю большинство из них.
$alarmList = @(Get-Content -Path '.\A.ALM') | foreach {
$token = $_ -split ' +'
[PSCustomObject]@{
date = $token[0]
time = $token[1]
H2 = $token[2]
H3 = $token[3]
H4 = $token[4]
H5 = $token[5]
H6 = $token[6]
H7 = $token[7]
H8 = $token[8]
}
}
$alarmList | Group H4 -NoElement | Select Name,Count | Out-Gridview