Reputation: 71
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 ")"
Upvotes: 2
Views: 137
Reputation: 71
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)
Upvotes: 0
Reputation: 45636
$ 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.
Upvotes: 2