天天看點

【一天一個shell指令】文本内容操作系列-awk補充二(函數)

這節可能要寫的比較粗了,時間太少。

一. 内置函數

注意一種約定俗稱文法習慣: [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,如需轉載請自行聯系原作者