awk的组合模式多条件模式

简介: awk的组合模式多条件模式

awk中,组合模式是指可以同时使用多个条件来过滤或处理输入行。当需要根据多个不同的测试满足情况来选择特定行时,可以组合多个条件。以下是组合模式的一些方式:

  1. 逻辑与 (AND)
    如果你需要一行数据同时满足两个或更多的条件才执行动作,你可以用 && 连接这些条件。例如:

    awk '$2 == "zhao" && $3 > 10 { print }' file.txt
    

    上述命令会打印出第二列是“zhao”并且第三列值大于10的行。

  2. 逻辑或 (OR)
    若要匹配满足任一条件的行,可以使用 || 连接条件:

    awk '$2 != "zhao" || $2 != "qian" { print }' file.txt
    

    此例中,将会打印出第二列既不是“zhao”也不是“qian”的所有行。但要注意这个逻辑可能并不如预期,因为任何非“zhao”的行也会满足条件(同理,任何非“qian”的行也会),所以实际上几乎所有的行都会被打印。

  3. 复合模式
    awk 中还可以直接列出多个模式,它们之间默认是逻辑 AND 的关系,只有当所有模式都匹配时才会执行相应的动作:

    awk '/pattern1/ && $2 >= 5 { action }' file.txt
    

    在此例子中,不仅检查了第二列的数值是否大于等于5,还检查了整行文本是否包含正则表达式 pattern1

  4. 括号明确优先级
    当逻辑操作符结合在一起时,为了确保优先级正确,可以使用括号 ( )

    awk '($2 == "zhao" || $2 == "qian") && $3 < 10 { print }' file.txt
    

    此命令将打印出第二列是“zhao”或“qian”,并且第三列小于10的所有行。

总结起来,在 awk 中编写多条件判断语句时,关键在于合理地使用逻辑运算符组织你的条件表达式以达到期望的筛选效果。

目录
相关文章
|
6月前
|
Perl
awk的组合模式模式列表
awk的组合模式模式列表
60 2
|
6月前
|
Perl
awk的多条件模式(逻辑AND)
awk的多条件模式(逻辑AND)
468 2
|
6月前
|
Perl
awk的组合模式范围模式
awk的组合模式范围模式
73 2
|
6月前
|
Perl
awk复合模式
awk复合模式
52 7
|
6月前
|
存储 Perl
awk多模式、多动作
awk多模式、多动作
51 6
|
6月前
|
Perl
awk逻辑或 (OR)
awk逻辑或 (OR)
417 3
|
6月前
|
Perl
awk复杂用法模式匹配与动作
awk复杂用法模式匹配与动作
92 2
|
6月前
|
Perl
awk的组合模式
awk的组合模式
58 1
|
6月前
|
Perl
awk复杂用法多模式和多动作块
awk复杂用法多模式和多动作块
64 2
20天刷题计划-77. 组合
本题这是回溯法的经典题目。直接的解法当然是使用for循环,思路简单但效率相对没有优势,可以使用回溯搜索法,具体步骤如下 定义成全局变量便不必再当作参数传入函数 剪枝,判断当前长度和数组剩余长度能否构成一个k个数的组合 for 循环里 i 从 start 到 n。 比如,n = 5,k = 4,temp.size( ) == 1,此时代表我们还需要(4 - 1 = 3)个数字, 如果 i = 4 的话,以后最多把 4 和 5 加入到 temp 中,而此时 temp.size() 才等于 1 + 2 = 3, 不够 4 个,所以 i 没必要等于 4,i 循环到 3 就足够了。