Here is a quick awk script to count all Cisco components. The script takes the output of a Cisco IOS “show module” command for 1 or more Cisco switches.
Command Used (MOD.out is the output from the “show mod” command)
cat MOD.out | grep -v “WS-F” | awk -f card.awk | sort
Output
Cisco,WS-C4506-E,1
Cisco,WS-SUP32-10GE-3B,4
Cisco,WS-X45-SUP6-E,1
Cisco,WS-X4548-GB-RJ45,2
Cisco,WS-X4648-RJ45V+E,1
Cisco,WS-X6148A-GE-45AF,5
Cisco,WS-X6148A-GE-TX,35
Script “card.awk”
substr($0,9,1) == “>” { switch = substr($0,1,8)}
ii = index($0,”10Gbase-“) {
split(substr($0,ii,50),cards);
cardcnt[cards[1]] = cardcnt[cards[1]] + 1;
next
}
ii = index($0,”WS-“) {
split(substr($0,ii,50),cards);
cardcnt[cards[1]] = cardcnt[cards[1]] + 1;
next
}
ii = index($0,”VS-“) {
split(substr($0,ii,50),cards);
cardcnt[cards[1]] = cardcnt[cards[1]] + 1;
next
}
ii = index($0,”PWR-“){
split(substr($0,ii,50),cards);
cardcnt[cards[1]] = cardcnt[cards[1]] + 1;
next
}
ii = index($0,”1000Base”) {
cardcnt[substr($0,ii,50)] = cardcnt[substr($0,ii,50)] + 1;
next
}
END{
for (each in cardcnt) {
print “Cisco,” each “,” cardcnt[each];
}
}