這節可能要寫的比較粗了,時間太少。
一. 内置函數
注意一種約定俗稱文法習慣: [a]代表a可選.
數字函數(Numeric Functions)
函數名
說明
atan2(y,x)
傳回y/x弧的反正切
cos(x)
傳回x的餘弦
exp(x)
傳回x的指數
int(x)
傳回最靠近的整數,風向标指向0
log(x)
傳回x的自然對數
rand()
傳回随機數
sin(x)
傳回x的正弦
sqrt(x)
傳回x的正平方根
srand([x])
生成随機數,可以設定起點
字元串操作函數(String-Manipulation Functions)
注意:藍色部分為gawk特有,awk沒有此函數功能。
asort(source [, dest [, how ] ])
傳回數組元素數(内容較多)
asorti(source [, dest [, how ] ])
同asort,(有細微差别)
gensub(regexp, replacement, how [, target])
搜尋正規表達式RegExp比對的regexp
gsub(regexp, replacement [, target])
将正規表達式比對的第一處内容替換成replacement_str
index(in, find)
傳回find在字元串in中出現的位置
length([string])
string 中的字元數
match(string, regexp [, array])
檢查正規表達式能否比對字元串
patsplit(string, array [, fieldpat [, seps ] ])
劃分件到由fieldpat定義的字元串,并存儲在array裡,分隔字元串存在在seps數組
split(string, array [, fieldsep [, seps ] ])
用定界符生成一個字元串清單,并将該清單存入數組
sprintf(format, expression1, ...)
列印
strtonum(str)
字元轉轉換成數字
sub(regexp, replacement [, target])
将正規表達式比對到的第一處内容替換成replacement
substr(string, start [, length])
分割字元串,根據其實位置和長度
tolower(string)
轉換成小寫
toupper(string)
轉換成大寫
輸入輸出函數(Input/Output Functions)
函數
close(filename [, how])
關閉檔案輸入輸出流
fflush([filename])
重新整理與檔案名相關的任何緩沖輸出
system(command)
執行作業系統指令,傳回值給awk程式
時間函數(Time Functions)
mktime(datespec)
datespec為時間戳格式,與systime()格式一樣
strftime([format [, timestamp [, utc-flag]]])
格式化timestamp的内容,傳回日期格式
systime()
傳回系統時間,精确到秒
位操作函數(Bit-Manipulation Functions)
and(v1, v2)
v1,v2的與操作結果
compl(val)
val的反碼
lshift(val, count)
傳回val左移count位的值
or(v1, v2)
v1,v2的或操作
rshift(val, count)
傳回val右移count位的值
xor(v1, v2)
傳回v1,v2的異或的值
擷取類型資訊(Getting Type Information)
isarray(x)
如果x是數組,傳回true.否則false
字元串轉換函數(String-Translation Functions)
bindtextdomain(directory [, domain])
設定awk要搜尋資訊的目錄和域
dcgettext(string [, domain [, category]])
傳回的字元串string 翻譯文本域domain 的語言環境類别category
dcngettext(string1, string2, number [, domain [, category]])
傳回string1和string2的翻譯數量的複數形式,string1,string2在語言環境類别的文本域裡
内置函數還有些進階特性,等許多執行個體,以後有機會補充。
二. 自定義函數
格式入下:
function name([parameter-list])
{
body-of-function
}
如:
function myprint(num)
printf "%6.3g\n", num
}
awk這個指令還有很多功能,打算就隻寫這麼多了。以後可能更多在一些例子裡,與其他指令結合時會提到。
本文轉自 wws5201985 51CTO部落格,原文連結:http://blog.51cto.com/yjplxq/965294,如需轉載請自行聯系原作者