需要帮助从输出中整理数据,当ALL OK
为STATE
时,我只想显示一个显示RUNNING
的输出,如果{{ 1}}是NOT OK
(或其他任何字符串)。
我该如何实现?
STATE
输出:
Faulted
答案 0 :(得分:1)
仅根据您的输出,我想这样的事情就是您想要的吗?
$output = @"
-- SYSTEM STATE
-- System State Frozen
A XXXXXXXXXXXXX RUNNING 0
A XXXXXXXXXXXXX RUNNING 0
A XXXXXXXXXXXXX ANYTHINGBUTRUNNING 0
"@
($output -split '\r?\n') | ForEach-Object {
if ($_ -match '^[A-Z]\s+\w+') {
$system = $matches[0]
if ($_ -match '\bRUNNING\b') {
"$system ALL OK"
}
else {
"$system NOT OK"
}
}
}
生成的PowerShell控制台输出将是:
A XXXXXXXXXXXXX ALL OK
A XXXXXXXXXXXXX ALL OK
A XXXXXXXXXXXXX NOT OK