grep words from txt


Queue [APSAUTOCODER] on node [PRODAPP1] in domain [PROD]

   description            : 
   type                   : local
   max message len        : 104857600
   max queue depth        : 5000
   queue depth max event  : enabled
   persistent msgs        : yes
   backout threshold      : 0
   msg delivery seq       : priority
   queue shareable        : yes
   open input count       : 1
   open output count      : 11
   current queue depth    : 0
   queue depth high limit : 80
   queue depth high event : enabled
   queue depth low limit  : 20
   queue depth low event  : disabled
   message enq count      : 60079
   message deq count      : 60082
   inhibit gets           : no
   inhibit puts           : no
   creation date/time     : Wed 11-Jan-2012 01:06:11 PM
   alteration date/time   : Tue 14-Aug-2012 12:40:32 PM
   cluster name           : PROD

Queue [APSCASERETRIEVAL] on node [PRODAPP1] in domain [PROD]

   description            : 
   type                   : local
   max message len        : 104857600
   max queue depth        : 5000
   queue depth max event  : enabled
   persistent msgs        : yes
   backout threshold      : 0
   msg delivery seq       : priority
   queue shareable        : yes
   open input count       : 1
   open output count      : 0
   current queue depth    : 0
   queue depth high limit : 80
   queue depth high event : enabled
   queue depth low limit  : 20
   queue depth low event  : disabled
   message enq count      : 261
   message deq count      : 262
   inhibit gets           : no
   inhibit puts           : no
   creation date/time     : Wed 11-Jan-2012 01:05:54 PM
   alteration date/time   : Thu 29-Mar-2012 09:43:52 AM
   cluster name           : PROD

Queue [BMDI.RESULTS] on node [PRODAPP1] in domain [PROD]

   description            : 
   type                   : local
   max message len        : 104857600
   max queue depth        : 8000
   queue depth max event  : enabled
   persistent msgs        : yes
   backout threshold      : 0
   msg delivery seq       : priority
   queue shareable        : yes
   open input count       : 1
   open output count      : 0
   current queue depth    : 0
   queue depth high limit : 80

......  more ......

I have a txt file containing the lines above, and need to grep 2 of items (i.e. Queue [APSAUTOCODER] max queue depth : 5000) off of the file so that the output will look like:

APSAUTOCODER - max queue depth : 5000
APSCASERETRIEVAL - max queue depth : 5000
BMDI.RESULTS - max queue depth : 8000
.... more ...

Please advise.

awk '/Queue/ {printf("%s - ", substr($2,2,length($2)-1); next}
      /max queue depth / {print $0}  '  infile > outfile

start with that

1 Like

Hope this helps

awk '/Queue/ {gsub(/[\[\]]/,"",$2);m=$2;} /max queue depth/ {gsub(/  */," ");print m"-"$0;} ' input_file
1 Like
i=1
for id  `cat <file>| sed -n 's/^Queue \[([A-Z]\+)\].*/\1/'`
do
arr[$i]=$id
i=`expr $i + 1`
done
i=1
size=${arr[@]}
while [ $i -lt $size ]
do
j=`expr $i + 1`
sed -n "/Queue \[${arr[$i]}\]/,/Queue \[${arr[$j]}\]/p" > temp.txt
value=awk -F '=' '/max queue depth/{print $2} temp.txt
echo "${arr[$i]} -max queue depth:$value"
i=`expr $i + 1`
done

Does it help?

1 Like

Thank you so much! It works perfect.