查看: 1032|回复: 0

[教程] linux awk 运算符(算术运算符,赋值运算符,关系运算符,逻辑运算符,正则运算符)介

[复制链接]

9

主题

0

回帖

27

积分

技术1级

金币
18
阅读权限
10
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-1-5
QQ
发表于 2013-6-22 19:46:29 | 显示全部楼层 |阅读模式
一、运算符介绍
            运算符            描述                                    赋值运算符                            = += -= *= /= %= ^= **=            赋值语句                            逻辑运算符                            ||            逻辑或                            &&            逻辑与                            正则运算符                            ~ ~!            匹配正则表达式和不匹配正则表达式                            关系运算符                            < <= > >= != ==            关系运算符                            算术运算符                            + -            加,减                            * / &            乘,除与求余                            + - !            一元加,减和逻辑非                            ^ ***            求幂                            ++ --            增加或减少,作为前缀或后缀                            其它运算符                            $            字段引用                            空格            字符串连接符                            ?:            C条件表达式                            in            数组中是否存在某键值        
说明:awk运算符基本与c语言相同。表达式及功能基本相同
二、实例介绍
awk赋值运算符

复制代码代码如下:
a+=5; 等价于:a=a+5; 其它同类

awk逻辑运算符

复制代码代码如下:
[chengmo@localhost ~]$ awk 'BEGIN{a=1;b=2;print (a>5 && b<=2),(a>5 || b<=2);}'
0 1

awk正则运算符

复制代码代码如下:
[chengmo@localhost ~]$ awk 'BEGIN{a="100testa";if(a ~ /^100*/){print "ok";}}'
ok

awk关系运算符

复制代码代码如下:
如:> < 可以作为字符串比较,也可以用作数值比较,关键看操作数如果是字符串 就会转换为字符串比较。两个都为数字 才转为数值比较。字符串比较:按照ascii码顺序比较。</p><p>[chengmo@localhost ~]$ awk 'BEGIN{a="11";if(a >= 9){print "ok";}}'</p><p>[chengmo@localhost ~]$ awk 'BEGIN{a=11;if(a >= 9){print "ok";}}'  
ok

awk算术运算符

复制代码代码如下:
说明,所有用作算术运算符 进行操作,操作数自动转为数值,所有非数值都变为0。
[chengmo@localhost ~]$ awk 'BEGIN{a="b";print a++,++a;}'
0 2

其它运算符

复制代码代码如下:
?:运算符
[chengmo@localhost ~]$ awk 'BEGIN{a="b";print a=="b"?"ok":"err";}'
ok </p><p>in运算符
[chengmo@localhost ~]$ awk 'BEGIN{a="b";arr[0]="b";arr[1]="c";print (a in arr);}'
0
[chengmo@localhost ~]$ awk 'BEGIN{a="b";arr[0]="b";arr["b"]="c";print (a in arr);}'
1
in运算符,判断数组中是否存在该键值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部