Como você sabe de antemão quais itens precisam existir, crie uma lista e marque-os ao vê-los.
awk '
BEGIN {
for (i = 0; i < 24; i++) missing[0][sprintf("%02d", i)] = 1;
for (i = 0; i < 12; i++) missing[1][sprintf("%02d", i)] = 1;
}
$7 ~ /^\[[0-9]+\]$/ && $8 ~ /^Slot[0-9]+$/ {
gsub(/[^0-9]/, "", $7);
sub(/^[^0-9]+/, "", $8);
delete missing[$7][$8];
}
END {
for (enclosure in missing) {
for (slot in missing[enclosure]) {
printf "Missing enclosure %d Slot%s\n", enclosure, slot;
}
}
}
'