awk布尔操作符
2015-06-21 19:15
218 查看
使用布尔操作符可以将一系列的比较组合起来。下表列出了布尔操作符。
给定两个或多个表达式,只有当给定的表达式之一的值为真(非零或非空)时,使用操作符||的整个表达式的值才为真。而只有当&&操作符连接的两个表达式的值都为真时结果才为真。
下面的表达式:
NF == 6 && NR > 1
表示字段的数量必须等于6并且记录的编号必须大于1。
&&比||的优先级别高。你能说出下面的表达式的计算结果吗?
NR > 1 && NF >= 2 || $1 ~ /\t/
下面的例子用圆括号表明了基于优先规则那个表达式将首先被求值。
(NR > 1 && NF >= 2) || $1 ~ /\t/
换句话说,圆括号中的两个表达式必须都为真或圆括号右边的表达式为真。可以用圆括号来改变优先规则,例如,下面的例子规定两个条件必须都为真。
NR > 1 && (NF >= 2 || $1 ~ /\t/)
第一个条件必须为真,而且另外两个条件中必须有一个为真。
无论一个表达式的值为真或为假,操作符!都对其值取反。
! (NR > 1 && NF > 3)
如果圆括号中的表达式的值为假,那么上面的表达式的结果就为真。这个操作符与awk的in操作符结合起来非常有用,可用来判断某个下标是否在数组中(在后面我们将会看到)。当然它还有其他的用途。
参考资料:http://www.linuxawk.com/communication/508.html
运算符 | 含义 | 例子 |
---|---|---|
&& | 逻辑与 | a && b |
|| | 逻辑或 | a || b |
! | 逻辑非 | !a |
下面的表达式:
NF == 6 && NR > 1
表示字段的数量必须等于6并且记录的编号必须大于1。
&&比||的优先级别高。你能说出下面的表达式的计算结果吗?
NR > 1 && NF >= 2 || $1 ~ /\t/
下面的例子用圆括号表明了基于优先规则那个表达式将首先被求值。
(NR > 1 && NF >= 2) || $1 ~ /\t/
换句话说,圆括号中的两个表达式必须都为真或圆括号右边的表达式为真。可以用圆括号来改变优先规则,例如,下面的例子规定两个条件必须都为真。
NR > 1 && (NF >= 2 || $1 ~ /\t/)
第一个条件必须为真,而且另外两个条件中必须有一个为真。
无论一个表达式的值为真或为假,操作符!都对其值取反。
! (NR > 1 && NF > 3)
如果圆括号中的表达式的值为假,那么上面的表达式的结果就为真。这个操作符与awk的in操作符结合起来非常有用,可用来判断某个下标是否在数组中(在后面我们将会看到)。当然它还有其他的用途。
参考资料:http://www.linuxawk.com/communication/508.html
相关文章推荐
- 时间编程--time
- java基础—IO类——LineNumberReader 的使用
- 曾经单纯的痛苦
- 库函数调用 --综合实例(文件copy)
- 变量线程安全之ReentrantLock
- 程序员鼓励师到底是个什么鬼
- 库函数调用 4--fwrite
- 库函数调用 5--fseek
- 博客读后感
- 计算脚本执行时间
- 库函数调用 3--fread
- hdu4612Warm up tarjan+树形dp
- 库函数调用 2--fclose
- jQuery对象和DOM对象之间的相互转换
- js实现购物车(源码)
- 微软的最高市值是多少?
- bootstrap的对话框和提示信息
- hdoj 3501 Calculation 2
- iBeacon
- 库函数调用 1--fopen