awk基礎04-內建函式

Surpassme發表於2018-09-19

    在awk中常用的內建函式大概分為:數值函式、字元函式、時間函式、二進位制操作函式、陣列函式、自定義函式等。

數值函式

  常用的數值函式主要有int、rand、srand、sqrt等。詳細如下所示:

函式 說明
int(expr) 對數字進行取整
sqrt(expr) 返回數值的平方根
rand() 生成0~1的隨機數
srand([expr]) 使用指定的條件做為種子生成隨機數,如條件未指定,則使用時間做為種子,返回值是先前種子值。

  示例如下所示:

01數值函式.jpg

字元函式

  常用的數值函式如下所示:

函式 說明
gsub(regex,sub,string) 替換函式,其中第三個引數是可選的,如果無,則使用$0
index(str,sub) 查詢字串str中是否包含子字串sub,並返回起始位置資訊,如返回0則代表未找到指定的字串
length(str) 返回字串的長度
split(str,arr,regex) 分割字串str為正規表示式regex欄位並賦值給陣列arr
sub(regex,sub,str) 替換指定範圍內的字元全只替換第一次出現的字串
substr(str,start,length) 從字串返回從指定位置搜尋並且滿足長度要求的子字串
tolower(str) 將字串轉換為小寫
toupper(str) 將字串轉換為大寫

gsub:是全域性替換,會替換指定範圍內的所有能匹配到的字元
sub:是區域性替換,僅替換指定範圍內的第一次匹配到的字元

  示例如下所示:

02字元函式.jpg

陣列函式

函式 說明
isarray(x) 判斷變數是否為陣列,
delete array[index] 刪除陣列中的元素
delete array 清空陣列
asort(array) 給陣列排序
asorti(array) 類似於asort,但卻是用陣列下標進行排序,適用於下標為非數字的情況

  示例如下所示:

03陣列函式.jpg

  以上僅介紹了awk常用的內建函式,更多可以查閱man文件或查閱awk官方文件

本文同步在微信訂閱號上釋出,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼新增關注:
MyQRCode.jpg

相關文章