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

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

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

董洪蒙

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”等形式,這樣就實現了雙向維護。

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

主站蜘蛛池模板: 国产91丝袜| 蜜桃视频一区| 无码一区18禁| 国产精品久久久久婷婷五月| 伊人久久综在合线亚洲2019| 日韩无码视频播放| 欧美亚洲日韩不卡在线在线观看| 色老头综合网| 亚洲AⅤ综合在线欧美一区| 亚洲经典在线中文字幕| 天天综合色网| 国产亚洲精品自在久久不卡| 亚洲精品日产精品乱码不卡| 婷婷色在线视频| 尤物成AV人片在线观看| 99久久人妻精品免费二区| 国产欧美日韩综合在线第一| 欧美亚洲第一页| 亚洲日本中文综合在线| 亚洲无码不卡网| 一级毛片基地| www.99在线观看| AV网站中文| jizz国产在线| 国产91视频观看| 亚洲人成影院午夜网站| 超碰色了色| 91探花在线观看国产最新| 国产精品19p| 亚洲Av激情网五月天| 无码人中文字幕| 欧美福利在线播放| 久久五月天综合| 伊人色天堂| 欲色天天综合网| 国产丰满成熟女性性满足视频| 成人毛片免费观看| 亚洲第一香蕉视频| 亚洲区欧美区| 五月激情婷婷综合| 国产欧美亚洲精品第3页在线| 91久久夜色精品| 999国产精品永久免费视频精品久久| 亚洲不卡网| 99精品国产自在现线观看| 欧美精品1区2区| 在线观看精品国产入口| 国产毛片不卡| 一区二区偷拍美女撒尿视频| 久青草国产高清在线视频| 国产精品欧美激情| 伊人久久精品无码麻豆精品| 伊人精品视频免费在线| 免费人成在线观看视频色| 人人澡人人爽欧美一区| 亚洲精品动漫| 99热这里只有成人精品国产| 白丝美女办公室高潮喷水视频| 国产玖玖玖精品视频| 国产白浆在线| 色亚洲成人| 欧美日韩国产精品综合 | 精品视频91| 久久精品中文字幕免费| 亚欧成人无码AV在线播放| 国产成人乱无码视频| 亚洲精品国产自在现线最新| 黄色在线不卡| 午夜一区二区三区| 日韩欧美国产中文| 久久国产精品无码hdav| 野花国产精品入口| 亚洲精品另类| 又猛又黄又爽无遮挡的视频网站| 无遮挡国产高潮视频免费观看 | 中文字幕欧美日韩| 国产激爽大片高清在线观看| 91热爆在线| 99热最新网址| 国产在线拍偷自揄拍精品| 青青草一区二区免费精品| 日本影院一区|