GAWK 手册(八)第八章 内建函式(Built-in Functions) 内建函式是 gawk 内建的函式,可在 gawk 程式的任何地方呼叫内建函式。 8.1 数值方面的内建函式 int(x) 求出 x 的整数部份,朝向 0 的方向做舍去。例如:int(3.9) 是 3,int(-3.9) 是 -3。
sqrt(x) 求出 x 正的平方根值。例 sqrt(4)=2 exp(x) 求出 x 的次方。例 exp(2) 即是求 e*e 。 log(x) 求出 x 的自然对数。 sin(x) 求出 x 的 sine 值,x 是弪度量。 cos(x) 求出 x 的 cosine 值,x 是弪度量。 atan2(y,x) 求 y/x 的 arctangent 值,所求出的值其单位是弪度量。 rand() 得出一个乱数值。此乱数值平均分布在 0 和 1 之间。这值不会是 0,也不会是 1。 每次执行 gawk,rand 开始产生数字从相同点或 seed。 srand(x) 设定产生乱数的开始点或 seed 为 x。如果在第二次你设定相同的 seed 值,你将再度得到相同序列的乱数值。 如果省略引数 x,例如 srand(),则现在的日期、时间会被当成 seed。这个方法可使得乱数值是真正不可预测的。 srand 的传回值(return value)是前次所设定的 seed 值。 8.2 字串方面的内建函式
它会在字串 in 里面,寻找字串 find 第一次出现的地方,传回值是字串 find 出现在字串 in 里面的位置。如果在字串 in 里面找不到字 串 find,则传回值为 0。 例如:
会印出 3。
求出 string 有几个字元。 例如:
是 5。
match 函式会在字串 string 里面,寻找符合 regexp 的最长、最靠左边的子字串。传回值是 regexp 在 string 的开始位置,即 index 值。 match 函式会设定内在变数 RSTART 等於 index,它也会设定内在变数 RLENGTH 等於符合的字元个数。如果不符合,则会设定 RSTART 为 0、RLENGTH 为 -1。
举 printf 类似,但是 sprintf 并不印出,而是传回字串。 例如:
传回的字串为"pi = 3.14 (approx.)"
在字串 target 里面,寻找符合 regexp 的最长、最靠左边的地方, 以字串 replacement 代替最左边的 regexp。 例如:
结果字串str会变成
gsub 与前面的 sub 类似。在字串 target 里面,寻找符合 regexp 的所有地方,以字串 replacement 代替所有的 regexp。 例如:
结果字串str会变成
传回字串 string 的子字串,这个子字串的长度为 length 个字元, 从第 start 个位置开始。 例如:
传回值为"ing" 如果 length 没有出现,则传回的子字串是从第 start 个位置开始至结束。 例如:
|