美文网首页
40 awk 命令(二)

40 awk 命令(二)

作者: StarShift | 来源:发表于2016-10-30 03:03 被阅读38次

    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
    

    相关文章

      网友评论

          本文标题:40 awk 命令(二)

          本文链接:https://www.haomeiwen.com/subject/ykoyuttx.html