srand(n)函数使用给定的参数 n 作为种子来初始化随机数的产生过程。不论何时启动, awk 只会从 n 开始产生随机数,如果不指定参数 n, awk 默认使用当天的时间作为产生随机数的 种子。
实例2:产生 5 个从 5 到 50 的随机数
[root@localhost ~]# cat srand.awk BEGIN { #Initialize the sedd with 5. srand(5); #Totally I want to generate 5 numbers total = 5; #maximun number is 50 max = 50; count = 0; while(count < total) { rnd = int(rand()*max); if( array[rnd] == 0 ) { count++; array[rnd]++; } } for ( i=5;i<=max;i++) { if (array[i]) print i;} } [root@localhost ~]# awk -f srand.awk 14 16 23 33 35常用字符串函数:
length函数:
length([S]) 返回指定字符串长度。
实例1:length函数
[root@bash ~]# awk 'BEGIN{print length("young")}' 5sub函数:
sub(r,s,[t]) 对t字符串进行搜索r表示的模式匹配的内容(可使用正则匹配),并将第一个匹配的内容替换为s代表的字符串。
实例1:
[root@bash ~]# awk 'BEGIN{a="geek young";sub("young","xixi",a);print a}' geek xixi #注意字符串要用引号实例2:
[root@bash ~]# echo "geek young hahahaha"|awk ' >{sub(/\<young\>/,"xixi",$2); #正则匹配模式中字符串不加引号 >print $2}' xixi实例3:
[root@bash ~]# echo "2008:08:08:08 08:08:08" | awk 'sub(/:/,"",$1)' 200808:08:08 08:08:08