亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        AWK語言在網絡維護工作中的運用

        2016-10-21 04:55:23董洪蒙
        科學與財富 2016年9期

        董洪蒙

        AWK是一種優(yōu)良的文本處理工具,自Linux出名,而后因其出色的性能,為Windows所支持。我們可以下載Cygwin來提供AWK支持。Cygwin是一個在windows平臺上運行的類UNIX的模擬環(huán)境,它對于學習UNIX/Linux操作環(huán)境,或者從UNIX到Windows的應用程序移植,或者進行某些特殊的開發(fā)工作,非常有用。下載安裝完成后,應在系統(tǒng)路徑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:]+";

        }

        {

        # 循環(huán)判斷每一行(正則方式),如第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?。躰", $1, name);

        # 輸出interface VLAN段

        printf("interface VLAN %d\n\tip address 192.168.%d.1 255.255.255.0\n\t?。躰", $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?。躰", $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{}的下一段{}即程序主體,用于根據模板循環(huán)處理每一行,主體的后面可跟上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”等形式,這樣就實現了雙向維護。

        在實際工作中,所遇到的實際情況和需求要比上面的例子要復雜得多,如在模板內復用函數、多重循環(huán)、網絡掩碼的計算等等,限于篇幅,筆者在這里不作贅述,感興趣的朋友可自行搜索相關文檔參考編寫,為自己的工作開辟高效之路!??!

        国产精品又爽又粗又猛又黄| 久久国产精品不只是精品| 国产av专区一区二区三区 | 免费a级毛片高清在钱| 欧美大成色www永久网站婷| 99视频一区| 日韩人妻中文字幕一区二区| 亚洲午夜久久久久中文字幕| 国产一级自拍av播放| 大奶白浆视频在线观看| 亚洲色精品aⅴ一区区三区| 亚洲AV秘 无码一区二区三区1| 亚洲成人黄色av在线观看| 国产亚洲av看码精品永久| 欧美老妇交乱视频在线观看| 亚洲精品一品区二品区三品区| 车上震动a级作爱视频| 亚欧免费无码AⅤ在线观看| 亚洲自拍偷拍一区二区三区| 无码人妻少妇久久中文字幕蜜桃| 99精品电影一区二区免费看| 亚洲欧洲无码精品ⅤA| 国产一区二区三区在线男友| 日本乱偷人妻中文字幕| 亚洲综合网在线观看首页| 国产大学生自拍三级视频| 五月开心婷婷六月综合| 天天躁狠狠躁狠狠躁夜夜躁| 久久亚洲日本免费高清一区 | 女主播国产专区在线观看| 全黄性性激高免费视频| av网站免费线看| 午夜日本精品一区二区| 91精品国产综合久久熟女| 国产精品无码一区二区在线观一| 成av免费大片黄在线观看| 本道无码一区二区久久激情| 免费在线不卡黄色大片| 精品人妻大屁股白浆无码| 亚洲欧美精品伊人久久| 中文字幕人成乱码中文乱码|