rand()函数是随机产生一个0到1之间的保留小数点后6位的小数值,例如0.217788,所以需要乘以100得到21.7788,然后再对7取余,结果是0.7788,int()取整是0了,我们要获得1~7的随机数,所以加1,整个表达式才是int(rand()*100%7+1) ,其实int(length*rand()+1) 也是可以得到1~7的随机数的,只是在BEGIN中,length函数...
match:正则表达式匹配。 rand 和 srand:生成随机数。 sqrt, exp, log, sin, cos, atan2:数学函数。 tolower 和 toupper:转换字符串为小写或大写。 length:返回字符串长度。 index:返回子字符串的位置。 substr:获取子字符串。 mktime:转换日期字符串为时间戳。 6、awk命令形式 awk [-F|-f|-v]'BEGIN{} ...
srand([expr]):设置随机种子,一般与rand函数配合使用,如果参数为空,默认使用当前时间为种子; 例如,我们使用rand()函数生成一个随机数值: 但是你会发现,每次awk执行都会生成同样的随机数,但是在一次执行过程中产生的随机数又是不同的。因为每次awk执行都使用了同样的种子,所以我们可以用srand(...
[root@node1 awkdir]# awk 'BEGIN{srand();print rand()}' 0.549335 1. 2. 可以看到,上图中生成的随机数都是小于1的小数,如果我们想要生成整数随机数,可以将上述生成的随机数乘以100,然后截取整数部分,使用int函数可以截取整数部分的值,示例如下 [root@node1 awkdir]# awk 'BEGIN{srand();print rand()}...
srand : 建立rand()新的种子数,如果没有制定就用当天的时间 B)、算数函数 sub(),gsub() : 替换函数 Index(s,t) : 返回子串t在字符串s中的位置,如果没有则返回0 length(s) : 返回字符串长度,当没有给出s时,返回$0的长度 match(s,a,seq) : 使用seq将字符串s分解到数组a中,默认seq伪FS ...
rand 和 srand:生成随机数。 sqrt, exp, log, sin, cos, atan2:数学函数。 tolower 和 toupper:转换字符串为小写或大写。 length:返回字符串长度。 index:返回子字符串的位置。 substr:获取子字符串。 mktime:转换日期字符串为时间戳。 6、awk命令形式 ...
rand( ) : 返回介于 0与1之间的(近似)随机数值。 例0-9 随机数:awk 'BEGIN{srand();print int(rand()*10);}' 删除Array:delete,delete array[1] awk 文件格式 对于处理逻辑比较复杂的语句,建议写到文件中。 $ cat test.awk #!/bin/awk awk -f ...
rand() 返回一个随机数N,0和1范围,0<N<1 srand([expr]) 使用expr生成随机数,如果不指定,默认使用当前时间为种子,如果前面有种子则使用生成随机数 asort(a,b) 对数组a的值进行排序,把排序后的值存到新的数组b中,新排序的数组下标从1开始 asorti(a,b) 对数组a的下标进行排序,同上 ...
srand( ) : 以当前的系统时间作为随机数的种子 rand( ) : 返回介于 0与1之间的(近似)随机数值. 11. 使用 awk 编写递归程序 awk 中除了函数的参数列(Argument List)上的参数(Arguments)外,所有变量不管于何处出现,全被视为全局变量. 其生命持续至程序结束 --- 该变量不论在function外或 function内皆可使用...
srand() ,每次生成的随机数都是一样的,目前未搞清楚原因 。rand() 生成 [0, 1) 的随浮点数。如果需要生成 [a,b) 范围内的随机数,只需要对 rand() 生成的随机数做如下运算:如生成 [-1,1) 的随机数:如果将 srand() 放在 for 循环之内,在 for 循环中生成的随机数都是一个值。