моят очаквам изход (буфер) е както е посочено по-долу в няколко реда.
status QM1
QM(QM1) Status(Running)
CPU: 0.02%
Memory: 106MB
Queue manager file system: 391MB used, 47.3GB allocated
[1%]
HA role: Primary
HA status: Normal
HA control: Enabled
HA preferred location: Here
mqa(mqcli)#
опитах няколко опции за регекс, но продължавам да получавам 0, тъй като няма съвпадение.
regexp /^.*b(Running)b.*$ $qmgrstat
подобно, вземете стойността на "HA Status".
Какъв би бил правилният синтаксис на Regex.
Отговори:
0 за отговор № 1Ако искате да уловите състоянието на HA, когато състоянието „QM“ работи, можете да направите
if {[string match {*Status(Running)*} $qmgrstat]} {
regexp {HA status:s+(S+)} $qmgrstat -> status
}
1 за отговор № 2
Не съм сигурен, че разбирам. Искате ли само да съответствате на стойността на HA status
? Ако да, тогава този регекс ще направи това:
HA status:W*(.*)
0 за отговор № 3
Можете да използвате следния регекс, за да получите целия изход:
status[^v]*vQM[^v]*vCPU:[^v]*vMemory:[^v]*vQueue manager file system:[^v]*vHA role:[^v]*vHA status:[^v]*vHA control:[^v]*vHA preferred location:[^v]*vmqa[^v]*#v
ако искате пълният ред текст с използването на състоянието: [^v]*Status([^v]*
За да получите линията със статуса на HA, можете да използвате: HA status:[^v]*
Късмет!