Linux高级文本处理之gawk printf命令与函数(2)

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")}' 5

sub函数:

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14413.html