40 awk 命令(二)

2016-10-30  本文已影响38人  StarShift

awk 的运算和判断

作为一种程序设计语言所应具有的特点之一,awk支持多种运算,这些运算与C语言提供的基本相同。awk还提供了一系列内置的运算函数(如log、sqr、cos、sin等)和一些用于对字符串进行操作(运算)的函数(如length、substr等等)。这些函数的引用大大的提高了awk的运算功能。作为对条件转移指令的一部分,关系判断是每种程序设计语言都具备的功能,awk也不例外,awk中允许进行多种测试,作为样式匹配,还提供了模式匹配表达式(匹配)和!(不匹配)。作为对测试的一种扩充,awk也支持用逻辑运算符。

算术运算符
Paste_Image.png
root@ubuntu:~# awk 'BEGIN{a="b";print a++,++a;}'
0 2

所有非数值被转换成0

赋值运算
Paste_Image.png
逻辑运算符
Paste_Image.png
root@ubuntu:~# awk 'BEGIN{a=1;b=2;print (a>5 && b<=2),(a>5 || b<=2);}' 
0 1
正则运算符
Paste_Image.png
root@ubuntu:~# awk 'BEGIN{a="100testa";if(a ~ /^100*/){print "ok";}}' 
ok
root@ubuntu:~# 
关系运算符
Paste_Image.png
root@ubuntu:~# awk 'BEGIN{a=11;if(a >= 9){print "ok";}}'
ok
root@ubuntu:~# 

其他运算符

Paste_Image.png
root@ubuntu:~# awk 'BEGIN{a="b";print a=="b"?"ok":"err";}' 
ok

root@ubuntu:~# awk 'BEGIN{a="d";arr[0]="b";arr[1]="c";print (a in arr);}' 
0
root@ubuntu:~# awk 'BEGIN{a="b";arr[0]="b";arr["b"]="c";print (a in arr);}' 
1
上一篇 下一篇

猜你喜欢

热点阅读