美文网首页
23 - awk条件判断

23 - awk条件判断

作者: 舍是境界 | 来源:发表于2022-04-03 07:07 被阅读0次

    条件判断概述

    • 输出所有行还是输出部分行
    • 如何限制仅输出部分行的数据内容
    • 如何设置多个条件
    • 基本语法
      • awk '[条件]{指令}' 文件...
    • 条件表达式
      • 正则表达式
      • 数值/字符比较
      • 逻辑比较
    • 正则
      • /正则表达式/
      • 匹配,!不匹配
    $ awk -F: '/^ro/{print}' /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    
    $ awk -F: '$7!~/bash$/{print $1,$7}' /etc/passwd
    
    • 数值、字符串比较
      • == 等于、!= 不等于
      • > 大于、>= 大于或等于
      • < 小于、<= 小于或等于
    $ awk 'NR==2{print}' /etc/passwd
    bin:x:1:1:bin:/bin:/sbin/nologin
    
    $ awk -F: '$7!="/bin/bash"' /etc/passwd
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    
    $ awk -F: '$3>=1000{print $1}' /etc/passwd
    caowg
    
    • 逻辑与比较测试
      • &&逻辑与
      • ||逻辑或
    $ awk -F: '$3>=0&&$3<2{print $1,$3}' /etc/passwd
    root 0
    bin 1
    
    $ awk -F: '$3==1||$3==7{print $1,$3}' /etc/passwd
    bin 1
    halt 7
    
    • 运算符
      • +,-,*,/,%
      • ++,--,+=,-+,*=,/=
    $ awk 'NR%2==1{print}' /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    
    $ seq 200 | awk 'BEGIN{i=0} ($0%3==0)&&($0%13==0){i++} END{print i}'
    5
    

    小结

    • 本文我们学习了awk的条件判断
      • 正则表达式
      • 数值/字符比较练习
      • 逻辑处理联系

    相关文章

      网友评论

          本文标题:23 - awk条件判断

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