awk命令、awk编程语言详细介绍和实例

2019-09-23 09:36:07王振洲

2,数学函数

函数名 返回值
atan2(x,y) y,x 范围内的余切
cos(x) 余弦函数
exp(x) 求 幂
int(x) 取整
log(x) 自然对 数
rand() 随机数
sin(x) 正弦
sqrt(x) 平 方根
srand(x) x是rand()函数的种子
int(x) 取 整,过程没有舍入
rand() 产生一个大于等于0而小于1的随机数

六,实例

学习awk的时候,做了一个例子,学东西,不要光看,光看是记不住东西的。光看的话,也许你知道怎么回事,真正实际操作,不是这儿有问题,就是那儿有问题。所以一定要动手亲自操作一下。

1,测试文件test


root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/false
daemon:x:2:2:daemon:/sbin:/bin/false
mail:x:8:12:mail:/var/spool/mail:/bin/false
ftp:x:14:11:ftp:/home/ftp:/bin/false
&nobody:$:99:99:nobody:/:/bin/false
zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash
http:x:33:33::/srv/http:/bin/false
dbus:x:81:81:System message bus:/:/bin/false
hal:x:82:82:HAL daemon:/:/bin/false
mysql:x:89:89::/var/lib/mysql:/bin/false
aaa:x:1001:1001::/home/aaa:/bin/bash
ba:x:1002:1002::/home/zhangy:/bin/bash
test:x:1003:1003::/home/test:/bin/bash
@zhangying:*:1004:1004::/home/test:/bin/bash
policykit:x:102:1005:Po


例1:


cat test | awk -F: '{
 if ($1 == "root"){
 print $1;
 }else if($1 == "bin"){
 print $2;
 }else{
 print $3;
 }
}'

例2:

awk '{
 for(i=0;i<NF;i++){
 if ($i ~/^root/){
 print $i;
 }else if($i ~/zhangy/){
 print $i;continue;
 }else if($i ~/mysql/){
 print $i;next;
 }else if($i ~/^test/){
 print $i;break;
 }
 }
}' test

例3:

tail test | awk 'BEGIN{while(getline d){ split(d,test);for(i in test){
 print test[i]
}}}'

例4:

ls -al /home/zhangy/mytest | awk 'BEGIN{while(getline d){ split(d,test);
 print test[9] ;}
}'

例5:


echo "32:34" |awk -F: '{print "max = ",max($1,$2)}