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正則替換的強大之處,極端情況下,它能幫助我們提高上百倍的工作效率,并非枉談。

主站蜘蛛池模板: 久久久久九九精品影院| 亚洲啪啪网| 国产呦精品一区二区三区下载| 国产成人综合久久| 欧美翘臀一区二区三区| 国产人前露出系列视频| 中国精品自拍| 国产爽妇精品| 欧美综合区自拍亚洲综合绿色| 国产AV毛片| 欧美一级黄片一区2区| 国产亚洲欧美日韩在线一区二区三区| 中字无码av在线电影| 亚洲日韩在线满18点击进入| 成人国产一区二区三区| 一级黄色网站在线免费看| 国产一级妓女av网站| 精品乱码久久久久久久| 免费视频在线2021入口| 欧美爱爱网| 野花国产精品入口| 特级欧美视频aaaaaa| 日韩精品成人在线| 五月丁香在线视频| 九九香蕉视频| 欧美激情二区三区| 乱人伦视频中文字幕在线| 欧美午夜精品| 亚洲欧美日韩成人高清在线一区| 国内视频精品| 伊人AV天堂| 91丝袜美腿高跟国产极品老师| 亚洲午夜片| 亚洲精品午夜天堂网页| 99视频精品在线观看| 乱色熟女综合一区二区| 999福利激情视频| 99视频在线观看免费| 国产成年女人特黄特色毛片免 | 18禁高潮出水呻吟娇喘蜜芽| 18禁不卡免费网站| a在线亚洲男人的天堂试看| 日韩免费毛片| 亚洲无线一二三四区男男| 波多野结衣一二三| 国产乱人免费视频| 亚洲日韩精品综合在线一区二区| 亚洲AV色香蕉一区二区| 日韩精品无码免费一区二区三区| 高清无码手机在线观看| 欧美a在线视频| 99成人在线观看| 一级福利视频| 日本人妻丰满熟妇区| 国产真实乱人视频| 91精品免费久久久| 99re在线视频观看| 日韩中文无码av超清| 97在线视频免费观看| 99re这里只有国产中文精品国产精品| 国产H片无码不卡在线视频| 欧美亚洲一二三区| 亚洲男人的天堂在线观看| 日韩精品无码不卡无码| 91免费国产高清观看| 日韩欧美国产另类| jizz国产在线| 超碰色了色| 亚洲Av激情网五月天| 99精品免费欧美成人小视频| 国产特一级毛片| 国产成年女人特黄特色毛片免| 蜜桃视频一区| 久久久久青草大香线综合精品| 中文字幕免费播放| 国产高清免费午夜在线视频| 日本精品中文字幕在线不卡| 国产三级国产精品国产普男人| 久爱午夜精品免费视频| 亚洲精选无码久久久| 亚洲一区二区三区国产精华液| 中文字幕乱码中文乱码51精品|