- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Vim在网络维护工作中应用
Vim在网络维护工作中应用
Vim是Linux上著名的文本编辑器,他是早年的Vi编辑器的加强版。gVim是Vim的图形前端,它是跨平台的编辑器,基本上主流的操作系统上面都有它的版本。这个极具Unix特色和风格的编辑器功能十分强大,在实际工作中,尤其是批量文本处理上有着令人倍感方便快捷的特性。
Vim的具体编辑操作功能这里不做详述,笔者主要针对其强大的正则替换功能加以解析,如果运用得当,将会在大批量文本处理时事半功倍,极大提高处理效率,这样对程序员或网络管理员而言,将会得到一件得心应手的利器,在实际工作中有着非常重要的意义。下文讲述以gVim for windows作为使用环境。
在非编辑状态下,按下英文半角字符冒号即可进入Vim命令模式,正则替换要在此模式下输入特定指令加以执行,如下:
:g/test string/s//replace test string/g
可见替换命令由/分隔的6小段组成,说明如下:
第1段,例中“g”,代表替换范围为全部行,也可用“101,200”这样的格式代表特定的行号范围。
第2段,例中“test string”,搜索的字符串,可使用正则表达式,详细的正则表达式这里不做详述,只做一些常用功能的说明:^代表行首,$代表行尾,.代表任意字符,\s代表空白(空白包括空格、TAB)字符,\w代表字母字符,\d代表若干数字字符,.、\s、\w、\d的后面跟\+代表1或多个字符,跟*代表0或多字符(贪婪模式),跟\{-}代表非贪婪模式的*。另外在正则中还可以用\(\)进行分组。
第3段,例中“s”,代表要替换,需后续段指明如何替换,如果不包含第3段及以后的段,就代表搜索指令,如果第3段为d,则为删除,无需后续段。
第4段,例中为空,如果找到搜索串行后,要替换的不是搜索串,而是其它字符串,可在这里指定,一般除特殊情况不做指定。
第5段,例中“replace string”要替换的字符串,为空代表删除,可以使用第2段中的分组编号\1,\2等,代表从搜索串中取特定组的字符串,组合到替换字符串中,最后用作替换的串。
第6段,例中“g”,代表找到搜索字符串所在行后,全行搜索进行替换,如不加,则代表仅对本行进行一次搜索替换。
下面试举几例,对其进行说明。
例1,如下交换机配置vlan脚本:
vlan 1
vlan 2
vlan 3
…
实际工作中,vlan可能很多,有上千个,现在要在每个vlan前加个no,如果每行手工粘贴是不现实的,在Vim中可用一个简单的正则替换瞬间完成:
:g/^vlan/s//no vlan/
第2段的^vlan,代表寻找每行起头为vlan的所在行,第6段没有加g,因为我们只需替换每行起头的vlan为no vlan。
例2,有很长一段从设备上寻出的脚本,空格非常杂乱:
nfpp
log-buffer entries 1024
log-buffer logs 1 interval 300
ip-guard rate-limit per-src-ip 32
ip-guard attack-threshold per-src-ip 64
no arp-guard enable
arp-guard rate-limit per-src-ip 16
arp-guard rate-limit per-src-mac 16
…
同样行数非常多,每行头尾有很多多余的空白需删除,手工不适合,用word替换也不行,因为行中间还有有意义的空格,用Vim如下处理:
:g/^\s*/s/// # 删除行首杂乱空白
:g/\s*$/s/// # 删除行尾杂乱空白
注意第5段替换字符串为空,即为删除搜索到的字符串。
例3,有如下脚本:
ap-config 教A-103
ap-mac 5869.6c00.a0a3
ap-group jxl_a_1c
ap-config 教A-108
ap-mac 5869.6c00.a0f3
ap-group jxl_a_1c
ap-config 教A-203
sta-limit 256
ap-group jxl_a_2c
ap-config 教A-204
…
现在仅需要ap-config起头的行,其余行要全部删除,用Vim如下处理:
:g!/^ap-config/d
第1段g后的!代表要搜索那些非指定搜索字符串所在的行,这样很快删除了那些除ap-config起?^之外的所有行。
例4,有以下防火
文档评论(0)