# generate ordinal number from interface name, used to sort interfaces
    def ordinal
      ary = ifc_name.scan(/\d+/)
      if ary.size == 1
        name, number = ifc_name.split(/(\d+)/)
        name.to_i(36) + number.to_i
      else
        ary.fill("0", ary.size..10).reverse.map.with_index { |integer, index| (integer.to_i+1) * 65536 ** index }.inject(:+)
      end
    end

    def <=> other
      ordinal <=> other.ordinal
    end


[ytti@eng0.dllstx09.us.to.gin.ntt.net ~/git/cfggen]% ./test r14.labxtx01.us.bb|grep interface
interface bundle-ether1
interface bundle-ether2
interface bundle-ether4
interface loopback0
interface mgmteth0/rp0/cpu0/0
interface mgmteth0/rp1/cpu0/0
interface tengige0/1/0/0
interface tengige0/1/0/1
interface tengige0/1/0/8
interface tengige0/1/0/11
interface tengige0/1/0/12
interface tengige0/1/0/13
interface tengige0/1/0/14
interface hundredgige0/2/0/0
interface hundredgige0/2/0/1
interface tengige0/2/0/2/0
interface tengige0/2/0/2/1
interface tengige0/2/0/2/1.320
interface tengige0/2/0/2/1.321
interface tengige0/2/0/2/1.322
interface tengige0/2/0/2/1.323
interface tengige0/2/0/2/1.324
interface tengige0/2/0/2/1.325
interface tengige0/2/0/2/1.326
interface tengige0/2/0/2/1.327
interface tengige0/2/0/2/1.328
interface tengige0/2/0/2/1.329
interface tengige0/2/0/2/1.610
interface tengige0/2/0/2/1.611
interface tengige0/2/0/2/1.612
interface tengige0/2/0/2/1.613
interface tengige0/2/0/2/1.614
interface tengige0/2/0/2/1.615
interface tengige0/2/0/2/1.616
interface tengige0/2/0/2/1.617
interface tengige0/2/0/2/1.618
interface tengige0/2/0/2/1.619
interface tengige0/2/0/2/2
interface tengige0/2/0/2/2.1000
interface tengige0/2/0/2/2.1001
interface tengige0/2/0/2/2.1002
interface tengige0/2/0/2/2.1003
interface tengige0/2/0/2/2.1004
interface tengige0/2/0/2/2.1005
interface tengige0/2/0/2/2.1006
interface tengige0/2/0/2/2.1007
interface tengige0/2/0/2/2.1008
interface tengige0/2/0/2/2.1009
interface tengige0/2/0/2/2.1010
interface tengige0/2/0/2/2.1011
interface tengige0/2/0/2/2.1012
interface tengige0/2/0/2/2.1013
interface tengige0/2/0/2/2.1014
interface tengige0/2/0/2/2.1015
interface tengige0/2/0/2/2.1016
interface tengige0/2/0/2/2.1017
interface tengige0/2/0/2/2.1018
interface tengige0/2/0/2/2.1019
interface tengige0/2/0/2/2.1020
interface tengige0/2/0/2/2.1021
interface tengige0/2/0/2/2.1022
interface tengige0/2/0/2/2.1023
interface tengige0/2/0/2/2.1024
interface tengige0/2/0/2/2.1025
interface tengige0/2/0/2/2.1026
interface tengige0/2/0/2/2.1027
interface tengige0/2/0/2/2.1028
interface tengige0/2/0/2/2.1029
interface tengige0/2/0/2/2.1030
interface tengige0/2/0/2/2.1031
interface tengige0/2/0/2/2.1032
interface tengige0/2/0/2/2.1033
interface tengige0/2/0/2/2.1034
interface tengige0/2/0/2/2.1035
interface tengige0/2/0/2/2.1036
interface tengige0/2/0/2/2.1037
interface tengige0/2/0/2/2.1038
interface tengige0/2/0/2/2.1039
interface tengige0/2/0/2/2.1040
interface tengige0/2/0/2/2.1041
interface tengige0/2/0/2/2.1042
interface tengige0/2/0/2/2.1043
interface tengige0/2/0/2/2.1044
interface tengige0/2/0/2/2.1045
interface tengige0/2/0/2/2.1046
interface tengige0/2/0/2/2.1047
interface tengige0/2/0/2/2.1048
interface tengige0/2/0/2/2.1049
interface tengige0/2/0/2/2.1050
interface tengige0/2/0/2/2.1051
interface tengige0/2/0/2/2.1052
interface tengige0/2/0/2/2.1053
interface tengige0/2/0/2/2.1054
interface tengige0/2/0/2/2.1055
interface tengige0/2/0/2/2.1056
interface tengige0/2/0/2/2.1057
interface tengige0/2/0/2/2.1058
interface tengige0/2/0/2/2.1059
interface tengige0/2/0/2/2.1060
interface tengige0/2/0/2/2.1061
interface tengige0/2/0/2/2.1062
interface tengige0/2/0/2/2.1063
interface tengige0/2/0/2/2.1064
interface tengige0/2/0/2/2.1065
interface tengige0/2/0/2/2.1066
interface tengige0/2/0/2/2.1067
interface tengige0/2/0/2/2.1068
interface tengige0/2/0/2/2.1069
interface tengige0/2/0/2/2.1070
interface tengige0/2/0/2/2.1071
interface tengige0/2/0/2/2.1072
interface tengige0/2/0/2/2.1073
interface tengige0/2/0/2/2.1074
interface tengige0/2/0/2/2.1075
interface tengige0/2/0/2/2.1076
interface tengige0/2/0/2/2.1077
interface tengige0/2/0/2/2.1078
interface tengige0/2/0/3/0
interface tengige0/2/0/3/1
interface tengige0/2/0/3/2
interface hundredgige0/3/0/1
interface hundredgige0/3/0/2
interface hundredgige0/3/0/2.300
interface hundredgige0/3/0/2.301
interface hundredgige0/3/0/2.302
interface hundredgige0/3/0/2.303
interface hundredgige0/3/0/2.304
interface hundredgige0/3/0/2.305
interface hundredgige0/3/0/2.306
interface hundredgige0/3/0/2.307
interface hundredgige0/3/0/2.308
interface hundredgige0/3/0/2.309
interface hundredgige0/3/0/2.600
interface hundredgige0/3/0/2.601
interface hundredgige0/3/0/2.602
interface hundredgige0/3/0/2.603
interface hundredgige0/3/0/2.604
interface hundredgige0/3/0/2.605
interface hundredgige0/3/0/2.606
interface hundredgige0/3/0/2.607
interface hundredgige0/3/0/2.608
interface hundredgige0/3/0/2.609
interface hundredgige0/3/0/3
[ytti@eng0.dllstx09.us.to.gin.ntt.net ~/git/cfggen]% ./test r24.labxtx01.us.bb|grep -A270 interfaces|egrep '^  [a-z]'
  ae1 {
  ae3 {
  ae5 {
  ae99 {
  lo0 {
  et-0/0/0 {
  et-0/0/1 {
  xe-1/0/0 {
  xe-1/0/1 {
  xe-1/0/1.512 {
  xe-1/0/2 {
  xe-1/0/3 {
  xe-1/0/5 {
  xe-1/0/6 {
  xe-1/0/7 {
  xe-1/0/8 {
  xe-1/0/9 {
  xe-1/0/10 {
  xe-1/0/11 {
  xe-1/0/12 {
  xe-1/0/13 {
  xe-1/0/14 {
  xe-1/0/15 {
  xe-1/0/16 {
  xe-1/0/17 {
  xe-1/0/18 {
  xe-1/0/19 {
  xe-1/0/20 {
  xe-1/0/21 {
  xe-1/0/22 {
  xe-1/0/23 {