/ / очаквайте регекс да търси пълен ред или текст - регекс, очаквайте

очаквайте regex да търси пълна линия или текст - regex, очаквайте

моят очаквам изход (буфер) е както е посочено по-долу в няколко реда.

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]*

Късмет!