Sort a list of object identifiers: Difference between revisions
Content added Content deleted
No edit summary |
No edit summary |
||
Line 53: | Line 53: | ||
# 17 | .1.3.6.1.4.1.11150.3.4.0.11 | |
# 17 | .1.3.6.1.4.1.11150.3.4.0.11 | |
||
# 18 | .1.3.6.1.4.1.11150.3.4.0.21 | |
# 18 | .1.3.6.1.4.1.11150.3.4.0.21 | |
||
=={{header|Perl}}== |
|||
<lang perl> |
|||
#!/usr/bin/perl |
|||
###-------------------------- |
|||
### Sort: -OID - Numeric |
|||
### Bert Mariani 2016-07-07 |
|||
###-------------------------- |
|||
@arrayOID = () ; |
|||
@arrayOIDSorted = () ; |
|||
@arrayOID = |
|||
( |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.10", |
|||
".1.3.6.1.4.1.11150.3.4.0.2", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.19", |
|||
".1.3.6.1.4.1.11150.3.4.0.1", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.22", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.2", |
|||
".1.3.6.1.4.1.11150.3.4.0.11", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.1", |
|||
".1.3.6.1.4.1.11.2.17.3773.0.2", |
|||
".1.3.6.1.4.1.11.2.17.19.2.0.79", |
|||
".1.3.6.1.4.1.11150.3.4.0.21", |
|||
".1.3.6.1.4.1.11.2.17.19.2.0.9", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.25", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.32", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.4", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.31", |
|||
".1.3.6.1.4.1.11.2.17.19.3.4.0.3", |
|||
".1.3.6.1.4.1.11.2.17.3773.0.1" |
|||
); |
|||
### One big long line ... made readable |
|||
@arrayOIDSorted = |
|||
map { $_->[0] } |
|||
sort { $a->[1] cmp $b->[1] } |
|||
map { [ $_, |
|||
join '', map { sprintf("%8d",$_) } |
|||
split( /\./, $_) |
|||
] |
|||
} |
|||
@arrayOID; |
|||
print "\nAfter OID Sort \n\n"; |
|||
$ptrN = 0; |
|||
$entry = 1; |
|||
while ( $arrayOIDSorted[$ptrN] ) |
|||
{ |
|||
print "$entry | $arrayOIDSorted[$ptrN] |\n" ; |
|||
$entry++; |
|||
$ptrN++; |
|||
} |
|||
print "\nEnd OID Sort \n\n"; |
|||
###========================================= |
|||
# |
|||
# After OID Sort |
|||
# |
|||
# 1 | .1.3.6.1.4.1.11.2.17.19.2.0.9 | |
|||
# 2 | .1.3.6.1.4.1.11.2.17.19.2.0.79 | |
|||
# 3 | .1.3.6.1.4.1.11.2.17.19.3.4.0.1 | |
|||
# 4 | .1.3.6.1.4.1.11.2.17.19.3.4.0.2 | |
|||
# 5 | .1.3.6.1.4.1.11.2.17.19.3.4.0.3 | |
|||
# 6 | .1.3.6.1.4.1.11.2.17.19.3.4.0.4 | |
|||
# 7 | .1.3.6.1.4.1.11.2.17.19.3.4.0.10 | |
|||
# 8 | .1.3.6.1.4.1.11.2.17.19.3.4.0.19 | |
|||
# 9 | .1.3.6.1.4.1.11.2.17.19.3.4.0.22 | |
|||
# 10 | .1.3.6.1.4.1.11.2.17.19.3.4.0.25 | |
|||
# 11 | .1.3.6.1.4.1.11.2.17.19.3.4.0.31 | |
|||
# 12 | .1.3.6.1.4.1.11.2.17.19.3.4.0.32 | |
|||
# 13 | .1.3.6.1.4.1.11.2.17.3773.0.1 | |
|||
# 14 | .1.3.6.1.4.1.11.2.17.3773.0.2 | |
|||
# 15 | .1.3.6.1.4.1.11150.3.4.0.1 | |
|||
# 16 | .1.3.6.1.4.1.11150.3.4.0.2 | |
|||
# 17 | .1.3.6.1.4.1.11150.3.4.0.11 | |
|||
# 18 | .1.3.6.1.4.1.11150.3.4.0.21 | |
|||
# |
|||
# End OID Sort |
|||
#=========================================== |
|||
/<lang perl> |
Revision as of 20:29, 7 July 2016
Sort by OID numbers.
OID - Object Identifiers are used in Network data These numbers can vary in length, and have a dot "." between them. The individual number can be of different number of digits also.
Example:
==========================
INPUT
@arrayOID = (
".1.3.6.1.4.1.11.2.17.19.3.4.0.10", ".1.3.6.1.4.1.11150.3.4.0.2", ".1.3.6.1.4.1.11.2.17.19.3.4.0.19", ".1.3.6.1.4.1.11150.3.4.0.1", ".1.3.6.1.4.1.11.2.17.19.3.4.0.22", ".1.3.6.1.4.1.11.2.17.19.3.4.0.2", ".1.3.6.1.4.1.11150.3.4.0.11", ".1.3.6.1.4.1.11.2.17.19.3.4.0.1", ".1.3.6.1.4.1.11.2.17.3773.0.2", ".1.3.6.1.4.1.11.2.17.19.2.0.79", ".1.3.6.1.4.1.11150.3.4.0.21", ".1.3.6.1.4.1.11.2.17.19.2.0.9", ".1.3.6.1.4.1.11.2.17.19.3.4.0.25", ".1.3.6.1.4.1.11.2.17.19.3.4.0.32", ".1.3.6.1.4.1.11.2.17.19.3.4.0.4", ".1.3.6.1.4.1.11.2.17.19.3.4.0.31", ".1.3.6.1.4.1.11.2.17.19.3.4.0.3", ".1.3.6.1.4.1.11.2.17.3773.0.1"
);
============================
OUTPUT - Correctly Sorted
- 01 | .1.3.6.1.4.1.11.2.17.19.2.0.9 |
- 02 | .1.3.6.1.4.1.11.2.17.19.2.0.79 |
- 03 | .1.3.6.1.4.1.11.2.17.19.3.4.0.1 |
- 04 | .1.3.6.1.4.1.11.2.17.19.3.4.0.2 |
- 05 | .1.3.6.1.4.1.11.2.17.19.3.4.0.3 |
- 06 | .1.3.6.1.4.1.11.2.17.19.3.4.0.4 |
- 07 | .1.3.6.1.4.1.11.2.17.19.3.4.0.10 |
- 08 | .1.3.6.1.4.1.11.2.17.19.3.4.0.19 |
- 09 | .1.3.6.1.4.1.11.2.17.19.3.4.0.22 |
- 10 | .1.3.6.1.4.1.11.2.17.19.3.4.0.25 |
- 11 | .1.3.6.1.4.1.11.2.17.19.3.4.0.31 |
- 12 | .1.3.6.1.4.1.11.2.17.19.3.4.0.32 |
- 13 | .1.3.6.1.4.1.11.2.17.3773.0.1 |
- 14 | .1.3.6.1.4.1.11.2.17.3773.0.2 |
- 15 | .1.3.6.1.4.1.11150.3.4.0.1 |
- 16 | .1.3.6.1.4.1.11150.3.4.0.2 |
- 17 | .1.3.6.1.4.1.11150.3.4.0.11 |
- 18 | .1.3.6.1.4.1.11150.3.4.0.21 |
Perl
<lang perl>
- !/usr/bin/perl
- --------------------------
- Sort: -OID - Numeric
- Bert Mariani 2016-07-07
- --------------------------
@arrayOID = () ; @arrayOIDSorted = () ;
@arrayOID = (
".1.3.6.1.4.1.11.2.17.19.3.4.0.10", ".1.3.6.1.4.1.11150.3.4.0.2", ".1.3.6.1.4.1.11.2.17.19.3.4.0.19", ".1.3.6.1.4.1.11150.3.4.0.1", ".1.3.6.1.4.1.11.2.17.19.3.4.0.22", ".1.3.6.1.4.1.11.2.17.19.3.4.0.2", ".1.3.6.1.4.1.11150.3.4.0.11", ".1.3.6.1.4.1.11.2.17.19.3.4.0.1", ".1.3.6.1.4.1.11.2.17.3773.0.2", ".1.3.6.1.4.1.11.2.17.19.2.0.79", ".1.3.6.1.4.1.11150.3.4.0.21", ".1.3.6.1.4.1.11.2.17.19.2.0.9", ".1.3.6.1.4.1.11.2.17.19.3.4.0.25", ".1.3.6.1.4.1.11.2.17.19.3.4.0.32", ".1.3.6.1.4.1.11.2.17.19.3.4.0.4", ".1.3.6.1.4.1.11.2.17.19.3.4.0.31", ".1.3.6.1.4.1.11.2.17.19.3.4.0.3", ".1.3.6.1.4.1.11.2.17.3773.0.1"
);
### One big long line ... made readable @arrayOIDSorted = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [ $_, join , map { sprintf("%8d",$_) } split( /\./, $_) ] } @arrayOID;
print "\nAfter OID Sort \n\n"; $ptrN = 0; $entry = 1;
while ( $arrayOIDSorted[$ptrN] ) { print "$entry | $arrayOIDSorted[$ptrN] |\n" ; $entry++; $ptrN++; }
print "\nEnd OID Sort \n\n";
- =========================================
- After OID Sort
- 1 | .1.3.6.1.4.1.11.2.17.19.2.0.9 |
- 2 | .1.3.6.1.4.1.11.2.17.19.2.0.79 |
- 3 | .1.3.6.1.4.1.11.2.17.19.3.4.0.1 |
- 4 | .1.3.6.1.4.1.11.2.17.19.3.4.0.2 |
- 5 | .1.3.6.1.4.1.11.2.17.19.3.4.0.3 |
- 6 | .1.3.6.1.4.1.11.2.17.19.3.4.0.4 |
- 7 | .1.3.6.1.4.1.11.2.17.19.3.4.0.10 |
- 8 | .1.3.6.1.4.1.11.2.17.19.3.4.0.19 |
- 9 | .1.3.6.1.4.1.11.2.17.19.3.4.0.22 |
- 10 | .1.3.6.1.4.1.11.2.17.19.3.4.0.25 |
- 11 | .1.3.6.1.4.1.11.2.17.19.3.4.0.31 |
- 12 | .1.3.6.1.4.1.11.2.17.19.3.4.0.32 |
- 13 | .1.3.6.1.4.1.11.2.17.3773.0.1 |
- 14 | .1.3.6.1.4.1.11.2.17.3773.0.2 |
- 15 | .1.3.6.1.4.1.11150.3.4.0.1 |
- 16 | .1.3.6.1.4.1.11150.3.4.0.2 |
- 17 | .1.3.6.1.4.1.11150.3.4.0.11 |
- 18 | .1.3.6.1.4.1.11150.3.4.0.21 |
- End OID Sort
- ===========================================
/<lang perl>