awk 的运算和判断
作为一种程序设计语言所应具有的特点之一,awk支持多种运算,这些运算与C语言提供的基本相同。awk还提供了一系列内置的运算函数(如log、sqr、cos、sin等)和一些用于对字符串进行操作(运算)的函数(如length、substr等等)。这些函数的引用大大的提高了awk的运算功能。作为对条件转移指令的一部分,关系判断是每种程序设计语言都具备的功能,awk也不例外,awk中允许进行多种测试,作为样式匹配,还提供了模式匹配表达式(匹配)和!(不匹配)。作为对测试的一种扩充,awk也支持用逻辑运算符。
算术运算符
Paste_Image.pngroot@ubuntu:~# awk 'BEGIN{a="b";print a++,++a;}'
0 2
所有非数值被转换成0
赋值运算
Paste_Image.png逻辑运算符
Paste_Image.pngroot@ubuntu:~# awk 'BEGIN{a=1;b=2;print (a>5 && b<=2),(a>5 || b<=2);}'
0 1
正则运算符
Paste_Image.pngroot@ubuntu:~# awk 'BEGIN{a="100testa";if(a ~ /^100*/){print "ok";}}'
ok
root@ubuntu:~#
关系运算符
Paste_Image.pngroot@ubuntu:~# awk 'BEGIN{a=11;if(a >= 9){print "ok";}}'
ok
root@ubuntu:~#
其他运算符
Paste_Image.pngroot@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
网友评论