Howdy Folks,
It seems like it is always awk that confuses the heck out of me and I even have books and examples.
I have this line:
awk '{if (/clientIP/)(SRV = $NF); if ($2 ~ /BUNDLE-GIM/) getline; if ($2 ~ /r100595/) {print SRV,"BUNDLE-GIM",$2}}' post.txt
to parse this text:
<api gim_list_client_modules clientIP=srv1001
ID=0
####### ENTRY 0 #######
MODULE_ID: -1
NAME: COMMON
INSTALLED_VERSION 100_r0_3
SCHEDULED_VERSION 100_r0_3
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 1 #######
MODULE_ID: 306
NAME: GIM
INSTALLED_VERSION 10.1.4_r103106_1
SCHEDULED_VERSION 10.1.4_r103106_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 2 #######
MODULE_ID: 305
NAME: SUPERVISOR
INSTALLED_VERSION 10.1.4_r103106_1
SCHEDULED_VERSION 10.1.4_r103106_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 3 #######
MODULE_ID: 303
NAME: INIT
INSTALLED_VERSION 10.1.4_r103106_1
SCHEDULED_VERSION 10.1.4_r103106_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 4 #######
MODULE_ID: 304
NAME: UTILS
INSTALLED_VERSION 10.1.4_r103106_1
SCHEDULED_VERSION 10.1.4_r103106_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 5 #######
MODULE_ID: 307
NAME: BUNDLE-GIM
INSTALLED_VERSION 10.1.4_r103106_1
SCHEDULED_VERSION 10.1.4_r103106_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 6 #######
MODULE_ID: 340
NAME: BUNDLE-STAP
INSTALLED_VERSION 10.1.4_r103106_1
SCHEDULED_VERSION 10.1.4_r103106_1
STATE: INSTALLED
IS_SCHEDULED: N
<api gim_list_client_modules clientIP=srv1002
ID=0
####### ENTRY 0 #######
MODULE_ID: -1
NAME: COMMON
INSTALLED_VERSION 10.1.2_r0_3
SCHEDULED_VERSION 10.1.2_r0_3
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 1 #######
MODULE_ID: 7
NAME: GIM
INSTALLED_VERSION 10.1.2_r100595_1
SCHEDULED_VERSION 10.1.2_r100595_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 2 #######
MODULE_ID: 10
NAME: SUPERVISOR
INSTALLED_VERSION 10.1.2_r100595_1
SCHEDULED_VERSION 10.1.2_r100595_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 3 #######
MODULE_ID: 8
NAME: INIT
INSTALLED_VERSION 10.1.2_r100595_1
SCHEDULED_VERSION 10.1.2_r100595_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 4 #######
MODULE_ID: 9
NAME: UTILS
INSTALLED_VERSION 10.1.2_r100595_1
SCHEDULED_VERSION 10.1.2_r100595_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 5 #######
MODULE_ID: 11
NAME: BUNDLE-GIM
INSTALLED_VERSION 10.1.2_r100595_1
SCHEDULED_VERSION 10.1.2_r100595_1
STATE: INSTALLED
IS_SCHEDULED: N
<api gim_list_client_modules clientIP=srv1003
ID=0
####### ENTRY 0 #######
MODULE_ID: -1
NAME: COMMON
INSTALLED_VERSION 100_r0_3
SCHEDULED_VERSION 100_r0_3
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 1 #######
MODULE_ID: 101
NAME: GIM
INSTALLED_VERSION 10.1.3_r101342_1
SCHEDULED_VERSION 10.1.3_r101342_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 2 #######
MODULE_ID: 100
NAME: SUPERVISOR
INSTALLED_VERSION 10.1.3_r101342_1
SCHEDULED_VERSION 10.1.3_r101342_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 3 #######
MODULE_ID: 98
NAME: INIT
INSTALLED_VERSION 10.1.3_r101342_1
SCHEDULED_VERSION 10.1.3_r101342_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 4 #######
MODULE_ID: 99
NAME: UTILS
INSTALLED_VERSION 10.1.3_r101342_1
SCHEDULED_VERSION 10.1.3_r101342_1
STATE: INSTALLED
IS_SCHEDULED: N
####### ENTRY 5 #######
MODULE_ID: 102
NAME: BUNDLE-GIM
INSTALLED_VERSION 10.1.3_r101342_1
SCHEDULED_VERSION 10.1.3_r101342_1
STATE: INSTALLED
IS_SCHEDULED: N
and my results are:
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
clientIP=srv1002 BUNDLE-GIM 10.1.2_r100595_1
What I really want is to add an && so that I only print when $2 contains BUNDLE-GIM and $2 of the very next line contains r100595 but I cannot figure out how to do it.
Thanks for your attention,
T