0

Here from the below log I have to grep for INTEGER: level1(1) and Hex-STRING: 22 22 22 22 22 22 00 00 and compare both.

In my case, If INTEGER: level1(1) corresponds to Hex-STRING: 22 22 22 22 22 22 00 00 then the check point should pass. So how can i achieve this?

Log:

ADM-LINUX (01:50:05): SNMPv2-MIB::sysUpTime.0 = Timeticks: (21267) 0:03:32.67   SNMPv2-MIB::snmpTrapOID.0 = OID: ISIS-MIB::isisAdjacencyChange  ISIS-MIB::isisNotificationSysLevelIndex.0 = **INTEGER: level1(1)**  ISIS-MIB::isisNotificationCircIfIndex.0 = Gauge32: 67108873     ISIS-MIB::isisPduLspId.0 = **Hex-STRING: 22 22 22 22 22 22 00 00**  ISIS-MIB::isisAdjState.0 = INTEGER: up(3)
ADM-LINUX (01:50:05): 2014-03-12 14:21:04 172.16.246.121 [172.16.246.121]:
ADM-LINUX (01:50:05): SNMPv2-MIB::sysUpTime.0 = Timeticks: (21269) 0:03:32.69   SNMPv2-MIB::snmpTrapOID.0 = OID: ISIS-MIB::isisAdjacencyChange  ISIS-MIB::isisNotificationSysLevelIndex.0 = INTEGER: level2(2)  ISIS-MIB::isisNotificationCircIfIndex.0 = Gauge32: 67108874     ISIS-MIB::isisPduLspId.0 = Hex-STRING: 22 22 22 22 22 24 00 00  ISIS-MIB::isisAdjState.0 = INTEGER: up(3)
ADM-LINUX (01:50:05): 2014-03-12 14:21:04 172.16.246.121 [172.16.246.121]:
ADM-LINUX (01:50:05): SNMPv2-MIB::sysUpTime.0 = Timeticks: (21271) 0:03:32.71   SNMPv2-MIB::snmpTrapOID.0 = OID: ISIS-MIB::isisAdjacencyChange  ISIS-MIB::isisNotificationSysLevelIndex.0 = INTEGER: level1(1)  ISIS-MIB::isisNotificationCircIfIndex.0 = Gauge32: 67108875     ISIS-MIB::isisPduLspId.0 = Hex-STRING: 22 22 22 22 22 25 00 00  ISIS-MIB::isisAdjState.0 = INTEGER: up(3)
ADM-LINUX (01:50:05): 2014-03-12 14:21:04 172.16.246.121 [172.16.246.121]:
ADM-LINUX (01:50:05): SNMPv2-MIB::sysUpTime.0 = Timeticks: (21272) 0:03:32.72   SNMPv2-MIB::snmpTrapOID.0 = OID: ISIS-MIB::isisAdjacencyChange  ISIS-MIB::isisNotificationSysLevelIndex.0 = INTEGER: level2(2)  ISIS-MIB::isisNotificationCircIfIndex.0 = Gauge32: 67108875     ISIS-MIB::isisPduLspId.0 = Hex-STRING: 22 22 22 22 22 25 00 00  ISIS-MIB::isisAdjState.0 = INTEGER: up(3)
Jolta
  • 2,620
  • 1
  • 29
  • 42
Priyanka
  • 1
  • 2

1 Answers1

0

Use this:

awk '/level1\(1\)/ && /22 22 22 22 22 22 00 00/ {print "ok"}' file

It will test all line and if one line does contain both level1(1) and 22 22 22 22 22 22 00 00 print ok

To make it more exact, you can use:

awk '/INTEGER: level1\(1\)/ && /Hex-STRING: 22 22 22 22 22 22 00 00/ {print "ok"}' file

If you like to store it in a variable:

test=$(awk '{f+=(/level1\(1\)/ && /22 22 22 22 22 22 00 00/)?1:0} END {print f}' file)
echo $test
1

variable test will be 1 or more if regex is true.

Jotne
  • 40,548
  • 12
  • 51
  • 55