在awk中常用的內建函式大概分為:數值函式、字元函式、時間函式、二進位制操作函式、陣列函式、自定義函式等。
數值函式
常用的數值函式主要有int、rand、srand、sqrt等。詳細如下所示:
函式 | 說明 |
---|---|
int(expr) | 對數字進行取整 |
sqrt(expr) | 返回數值的平方根 |
rand() | 生成0~1的隨機數 |
srand([expr]) | 使用指定的條件做為種子生成隨機數,如條件未指定,則使用時間做為種子,返回值是先前種子值。 |
示例如下所示:
字元函式
常用的數值函式如下所示:
函式 | 說明 |
---|---|
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:是區域性替換,僅替換指定範圍內的第一次匹配到的字元
示例如下所示:
陣列函式
函式 | 說明 |
---|---|
isarray(x) | 判斷變數是否為陣列, |
delete array[index] | 刪除陣列中的元素 |
delete array | 清空陣列 |
asort(array) | 給陣列排序 |
asorti(array) | 類似於asort,但卻是用陣列下標進行排序,適用於下標為非數字的情況 |
示例如下所示:
以上僅介紹了awk常用的內建函式,更多可以查閱man文件或查閱awk官方文件
本文同步在微信訂閱號上釋出,如各位小夥伴們喜歡我的文章,也可以關注我的微信訂閱號:woaitest,或掃描下面的二維碼新增關注: