Pregunta

I am running

echo "dis clusqmgr(*) suspend"|runmqsc QMGR1

to get the following output, but I would like to remove some of it. I have tried using egrep and cut but cannot get the desired result.

Original Output:

1 : dis clusqmgr(*) suspend
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(GWD1)                       CHANNEL(TO.GWD1.SSL)
CLUSTER(CLUSD)                        SUSPEND(NO)
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(GWD2)                       CHANNEL(TO.GWD2.SSL)
CLUSTER(CLUSD)                        SUSPEND(NO)

Desired output:

CLUSQMGR(GWD1) SUSPEND(NO)
CLUSQMGR(GWD2) SUSPEND(NO)

Command I am using to achieve this:

echo "dis clusqmgr(*) suspend"|runmqsc QMGR1|egrep 'CLUSQMGR|SUSPEND'| tr ')' '\n' | grep "CLUSQMGR(" | cut -f 2  -d ")"
¿Fue útil?

Solución 2

echo "dis clusqmgr(*) suspend"|runmqsc QMGR1|egrep 'CLUSQMGR|SUSPEND'|paste -  - | awk '{print $1,$4}' 

is giving me the desired output as

CLUSQMGR(GWD1) SUSPEND(NO) CLUSQMGR(GWD2) SUSPEND(NO)

Otros consejos

$ cat t.txt
1 : dis clusqmgr(*) suspend
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(GWD1)                       CHANNEL(TO.GWD1.SSL)
CLUSTER(CLUSD)                        SUSPEND(NO)
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(GWD2)                       CHANNEL(TO.GWD2.SSL)
CLUSTER(CLUSD)                        SUSPEND(NO)

.

$ awk '/^CLUSQMGR/{clusqmgr=$1;t=1}t&&/^CLUSTER/{t=0;print clusqmgr, $2}' t.txt
CLUSQMGR(GWD1) SUSPEND(NO)
CLUSQMGR(GWD2) SUSPEND(NO)

So

$ echo "dis clusqmgr(*) suspend" | runmqsc QMGR1 | awk '/^CLUSQMGR/{clusqmgr=$1;t=1}t&&/^CLUSTER/{t=0;print clusqmgr, $2}'

should yield your desired results.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top