AWK语言在网络维护工作中的运用

来源 :科学与财富 | 被引量 : 0次 | 上传用户:milamiya2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  AWK是一种优良的文本处理工具,自Linux出名,而后因其出色的性能,为Windows所支持。我们可以下载Cygwin来提供AWK支持。Cygwin是一个在windows平台上运行的类UNIX的模拟环境,它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,非常有用。下载安装完成后,应在系统路径PATH里加上“C:\cygwin”,以方便调用,打开CMD窗口,键入gawk可看到相关帮助信息。
  下面笔者以工作中实际遇到的例子,讲述如何使用AWK大幅提高文本处理的速度,是怎样使枯燥的重复劳动变成一蹴而就、轻而易举的:
  在交换机配置一个新vlan时,一般是如下的格式:
  vlan 2
  name networkcenter
  !
  interface VLAN 2
  ip address 192.168.2.1 255.255.255.0
  !
  ip dhcp pool pool_networkcenter
  network 192.168.2.0 255.255.255.0
  default-router 192.168.2.1
  dns-server 61.147.37.1
  !
  ip dhcp excluded-address 192.168.2.1 192.168.2.10
  !
  以上是一个网段在核心交换机开启DHCP分配时的典型配置。试想如果有十几个这样的网段,复制粘贴还能应付,如果有几百个,就让人头大了,而且还不能保证不出丝毫差错。我们可以看出每个网段的配置有重复性,为此可编写如下序列文件vlan.txt:
  2 networkcenter 10
  3 xzl_db 20
  4 xzl_xb 20
  5 xzl_dn 20
  6 xzl_xn #
  7 jxl_a 30
  8 jxl_b 20
  9 jxl_c 20
  10 # 20
  11 syl_n 100
  12 syl_b 20
  13 shi_tang 20
  ……
  第1列表示vlan號,第2列表示vlan name,第3列是从网关1一直排除到的地址范围。此时我们可以编辑如下vlan.awk模板文件(纯文本),以便自动生成相关配置:
  #!/bin/awk -f
  BEGIN{
  # 指定第一行判断如何分字段的字段分隔符(FS即field separator的英文缩写)
  FS="[ \t:]+";
  }
  {
  # 循环判断每一行(正则方式),如第1列是个数字,表示是vlan号,读取本行进行生成
  if($1~/^[0-9]+$/){
  # 输出vlan段
  # 判断第2列是否为#(空),生成正确的vlan name
  if($2=="#") { name="no name"; }
  else { name=sprintf("name %s", $2); }
  printf("vlan %d\n\t%s\n\t!\n", $1, name);
  # 输出interface VLAN段
  printf("interface VLAN %d\n\tip address 192.168.%d.1 255.255.255.0\n\t!\n", $1, $1);
  # 输出ip dhcp pool段
  printf("ip dhcp pool pool_%d\n\tnetwork 192.168.%d.0 255.255.255.0\n\tdefault-router 192.168.%d.1\n\tdns-server 61.147.37.1\n\t!\n", $1, $1, $1);
  # 输出ip dhcp excluded-address段
  if($3!="#") {
  # 如果第3列不为#(空),排除明文的要排除的IP
  printf("ip dhcp excluded-address 192.168.%d.1 192.168.%d.%d\n\t!\n", $1, $1, $3);
  }
  else {
  # 否则排除网关IP
  printf("ip dhcp excluded-address 192.168.%d.1\n\t!\n", $1);
  }
  # 每个网段生成后的空行
  printf("\n\n");
  }
  }
  上面所列的模板文件中,其中的注释已部分阐述了AWK的运作机理及语言特性,笔者仅就一些要点加归纳总结:
  ·第一行#!/bin/awk –f作用类似于Linux下的脚本文件第一行的#!/bin/bash。
  ·与Linux脚本一样,AWK以#作为注释行。
  ·BEGIN段中FS设置为"[ \t:]+ ",即指定分隔符为若干个空格、TAB或:。
  ·printf函数类似于C语言中的相关函数,%d、%s、%f等参数的形式与作用类同。
  ·AWK支持正则表达式,如“$1~/^[0-9]+$/”等,在有些情况下,利用它能极大地提高程序编写的效率。
  ·BEGIN{}的下一段{}即程序主体,用于根据模板循环处理每一行,主体的后面可跟上END{}段,用于善后事宜。
  命令行敲入:gawk –f "vlan.awk" "vlan.txt" > "result.txt",即可将生成的结果存于reault.txt文本中。我们可以看到,即便有几百上千个vlan,批量生成也很快,平时只需维护那张相关的序列表vlan.txt即可,必要时再重新生成一下。也可以将删除配置的情况考虑在内,只需将vlan.awk模板文件稍加修改,即可生成诸如“no interface VLAN xxx,no ip dhcp pool xxx”等形式,这样就实现了双向维护。
  在实际工作中,所遇到的实际情况和需求要比上面的例子要复杂得多,如在模板内复用函数、多重循环、网络掩码的计算等等,限于篇幅,笔者在这里不作赘述,感兴趣的朋友可自行搜索相关文档参考编写,为自己的工作开辟高效之路!!!
其他文献
摘要:高速公路为交通系统重要组成部分,为满足社会经济发展要求,近年来工程数量不断增多,且对施工要求更为严格。施工质量控制一直都是工程建设管理要点,为保证各项管理措施严格落实到位,需要重点做好各项相关资料的编制管理。根据施工质量控制资料特点与依据,确定工作实施的要点,有针对性的采取措施进行优化,争取不断提高工作效率,本文就此进行了简要分析。  关键词:高速公路;施工质量;资料编制  现在交通运输量不
期刊
摘要:散文是文学翻译中常见的体裁,本文通过借鉴一些散文翻译佳作及其解析,旨在进一步探究散文翻译技巧。  关键字:翻译技巧散文翻译  Abstract: Prose is a common type of literary translation. This paper focusing on some masterpieces of prose translation and analysis a
期刊
摘要:随着我国综合实力的不断提高,人们对于电的需求也越来越高,现在无论是各行各业的生产工作,还是人们的日常生活,都无法离开电,电与人们息息相关。现在,我国的电力行业在蓬勃的发展着,电力技术也越来越高,电力企业的健康发展推动了我国经济水平的提高。其中,电能计量的准确性在一定程度上决定了我国的电力发展,因此要提高电能计量的准确性是刻不容缓的。  关键词:提高;电能计量;准确性  随着我国经济实力的提高
期刊
摘要:在当前情况下,我国企业在在企业内部控制的环节上还存在着很多的问题,这些问题的存在,无疑会对企业的进一步发展产生不利影响。因此在企业的发展过程中,解决内部控制所存在的问题,是实现企业进步的必要措施,也是当务之急。本文将对企业发展的各方面进行仔细研究,并为解决企业内部控制存在的问题提出具体建议。  关键词:企业发展内部控制解决措施  内部控制是企业发展过程中所必要的管理活动,同时也是促进企业经济
期刊
摘要:房地产企业发展的方针和经营的决策通常都需要进行严密的内部控制管理,这样才能保护资产周转,保证财务收支,保障企业经济权益。良好的内部控制能提高房地产企业的凝聚力和竞争力,是企业进行现代化管理必须做好的方面。本文将分析的是房地产企业在发展中经过各种程序控制达到高效的内部控制管理的建设方法和完善措施。  关键词:房地产企业 内部控制 管理 措施  一、房地产内部控制現状分析  1.在房地产企业的内
期刊
作为一个企业要想有一个好的发展前景和良好的经济效益,需要有相对稳定的员工队伍。而每一位员工想要有所发展和依托,就需要赖以生存的企业。俗话说,“家和万事兴”,要提升企业的凝聚力,就要使成员建立一种互相信任、互相理解、互相帮助的家庭“成员”关系,也就是在企业中建立起“家园”文化。  1 构建“家文化”的必要性  倡导家文化把企业构建成和谐的大家庭,就是要使企业与员工实现和谐的平衡。家文化可以把企业职工
期刊
摘要:金属工艺学是一门研究有关制造金属机件的工艺方法的综合性技术学科,是机电专业的一门重要课程。加强学生能力的培养,不断提高学生的综合素质和能力,是当前金属工艺学教学改革中一个十分重要的内容,是金属工艺学教学质量的体现。各中专学校金属工艺学教师都在研讨和探索教学中学生能力培养的必要性和可能性。本文主要从自主学习能力,综合实践能力以及分析解决实际问题的能力等三个方面进行阐述,提出金属工艺学教学中学生
期刊
摘要:新的时期事业单位党务工作需要新的调整,事业单位要不断总结、实践新的党务工作方法,通过党务干部的带头作用,激发出全体员工的潜力,才能使事业单位获得更强的战斗力与凝聚力,为事业单位健康、有序发展提供保障。  关键词:事业单位;党务工作;措施  党务工作是事业单位自己发展及建设的重要基础和重要的保障。由于社会环境的变化以及其他因素的影响,新时期的党务工作面临着新的变化以及新的任务和要求。为了适应新
期刊
摘要:通过专业人员对广西省宾阳地区的水源林土壤调查类型以及土壤水分物理性质的检测发现,在宾阳河道周围的水源林水平地带的土壤属于赤红壤,并且山地土壤垂直分布可以明显表现出来,直观可以看出有山地红壤、山地黄壤、赤红壤以及山顶灌丛草甸土这四个土壤类型。随着海拔的不断升高,土壤的砂粒含量不断增加,其总孔隙度在40%到50%之间不等,不同森林类型的土壤最大持水量也不尽相同,一般在35%到45%之间,变化幅度
期刊
摘要:公证制度能够有效的保障我国经济法、民法的实施,完善我国的司法制度。随着我国社会的不断发展,经济水平的不断提高,需要公证的法律项目种类也愈发多了起来,公证行业的业务量明显加重。因此,建立完善的公证管理信息系统十分必要。  关键词:公证管理;信息系统;设计;分析  一、需求分析  公证业务管理和公证行政事务管理是公证管理之中的两个重要内容,一般来说,公证流程包括申请受理、审查和出具证书。  首先
期刊