999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Vim在網絡維護工作中的應用

2017-10-17 02:31:11董洪蒙
科學與財富 2017年27期

董洪蒙

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,有以下防火墻腳本:

security-access access_to_2 from zone_16 to default

security-access access_to_3 from zone_17 to default

security-access access_to_4 from zone_18 to default

security-access access_to_5 from zone_19 to default

...

如何將其變為如下形式:

security-access access_to_16 from zone_2 to default

security-access access_to_17 from zone_3 to default

security-access access_to_18 from zone_4 to default

security-access access_to_19 from zone_5 to default

前后數字對調,這項具一定難度的操作,用Vim一樣很容易完成:

:g/\(\d\+\)\(.\{-}\)\(\d\+\)/s//\3\2\1/

這里用到\1,\2,\3搜索分組替換,并且用.\{-}代表非貪婪的.*任意字符搜索方式。

綜上,限于篇幅,這里雖然舉的例子都經過簡化,實際工作中,要比上述更復雜,且都很龐大,當處理幾十行的文本,與處理上萬行的文本相比較時,就更能體會的Vim正則替換的強大之處,極端情況下,它能幫助我們提高上百倍的工作效率,并非枉談。

主站蜘蛛池模板: 免费国产黄线在线观看| 国产剧情伊人| 久996视频精品免费观看| 国产网友愉拍精品| 精品人妻一区二区三区蜜桃AⅤ| 国模沟沟一区二区三区| 国产精品污污在线观看网站| 久久综合久久鬼| 亚洲人成色77777在线观看| 午夜久久影院| 91精品综合| 国产精品尹人在线观看| 免费人成视频在线观看网站| 久久久久青草线综合超碰| www.精品国产| 欧洲高清无码在线| 人妻丰满熟妇av五码区| 国产无码在线调教| 亚洲欧洲日产无码AV| 国产成人久久综合777777麻豆| 国产系列在线| 久久久久久久蜜桃| 亚洲国产系列| 久久人搡人人玩人妻精品| 亚洲美女视频一区| 热思思久久免费视频| 久久成人国产精品免费软件| 欧美在线三级| 国产乱人伦精品一区二区| 日韩成人在线视频| 中文字幕亚洲第一| 精品三级网站| 99性视频| 亚洲成人精品久久| 伊人久久大香线蕉影院| 亚洲国产天堂久久九九九| 日韩精品久久久久久久电影蜜臀| аv天堂最新中文在线| 青草视频在线观看国产| 国产精品无码AV中文| 国产性生大片免费观看性欧美| 欧美一级高清视频在线播放| 在线观看91香蕉国产免费| 亚洲第一视频网| 成人日韩视频| 永久免费AⅤ无码网站在线观看| 人妻精品全国免费视频| 亚洲无码精彩视频在线观看| 热久久国产| 亚洲人成网线在线播放va| 日韩专区欧美| 国产亚洲精品资源在线26u| 国产第八页| 99免费在线观看视频| 国产精品无码制服丝袜| 亚洲看片网| 国产美女91呻吟求| 国产va欧美va在线观看| 波多野结衣无码AV在线| 亚洲v日韩v欧美在线观看| 久久香蕉国产线| www.亚洲一区| 国产一区成人| 亚洲无码视频一区二区三区| 欧美精品在线观看视频| 9久久伊人精品综合| 欧美19综合中文字幕| 在线人成精品免费视频| a毛片在线| 91精品啪在线观看国产91| 日韩无码视频网站| 人人澡人人爽欧美一区| 114级毛片免费观看| 久久窝窝国产精品午夜看片| 91人妻日韩人妻无码专区精品| 国产va免费精品观看| 免费一级大毛片a一观看不卡| jizz国产视频| 丁香婷婷综合激情| 88国产经典欧美一区二区三区| 波多野结衣第一页| 青草国产在线视频|