日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

awk:split()函数、数组、自定义函数

發布時間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 awk:split()函数、数组、自定义函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

測試關系數組下標是否存在,經測試無法使用 for,使用if
? ? ? ?if ("D" in num_grade)
? ? ? ? ? ? ? ?print "find ok"
? ? ? ?else
? ? ? ? ? ? ? ?print "error"
注:在關系數組中,所有的下標都被認為是字符串。可以使用數值或者是字符,不能是實數(如:data[1.23]="3.21"),即使下標是數值也被awk轉換為字符串。

數組、函數split()
1、split()創建數組(下標從1開始),語法:
n = split(string, array, separator)
注:n為split返回的分割的數據元素的個數(訪問最后一個元素array[n]);如果不指定separator,則使用FS;separator可以是正則表達式。
split("a,b,c",array,",")
split($1,array,"\t")

例:在獲取流量的時候,如果想保證lo可以像其它網卡一樣使用$2獲取接收流量,需要使用以下正則

split(line,run,": +|:| +")

run[2]的值為5697

[root@centos-6?nagios]#?cat?/proc/net/dev Inter-|???Receive????????????????????????????????????????????????|??Transmitface?|bytes????packets?errs?drop?fifo?frame?compressed?multicast|bytes????packets?errs?drop?fifo?colls?carrier?compressedlo:????5697??????79????0????0????0?????0??????????0?????????0?????5697??????79????0????0????0?????0???????0??????????0

2、刪除數組元素
?delete array[1]
3、多維數組同樣支持測試下標語法:if ((i,j) in array)
注:i和j默認使用SUBSEB值(\0344)來分隔

4、系統變量數組
?ARGV和其它數組不同,該數組第一個數組元素下標為0,最后一個為ARGV-1;參數個數變量為 ARGC
?ENVIRON值為當前環境變量的值,下標為變量名


補充1:自定義函數

awk自定義函數語法:

function name(parameter-list) {

statements

}

注:

1、函數內部的變量如果不在parameter-list的參數列表中指定,默認為全局變量;

2、指定多個參數使用逗號分開,一般情況下傳遞給函數的參數與函數的局部變量用多個空格分開,如:

function sort(ARRAY, NUM, ?i, j, tmp) {

......

}

3、通常使用return返回一個值(注:對數組的操作不需要return expression返回值,因為函數對數組的任何操作在函數外部都是可見的。)


轉載于:https://blog.51cto.com/sndapk/1220357

總結

以上是生活随笔為你收集整理的awk:split()函数、数组、自定义函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。