美文网首页
【Linux shell学习笔记-14-gawk进阶3】

【Linux shell学习笔记-14-gawk进阶3】

作者: 西布鲁克 | 来源:发表于2021-05-10 10:44 被阅读0次

    3.使用模式

    gawk程序支持多种类型的匹配模式来过滤数据记录,这一点跟sed编辑器大同小异。BEGIN和END关键字是用来在读取数据流之前或之 后执行命令的特殊模式。类似地,你可以创建其他模式在数据流中出现匹配数据时执行一些命令。

    3.1 正则表达式

    在使用正则表达式时,正则表达式必须出现在它要控制的程序脚本的左花括号前。

    # 匹配包含'11'的行,打印以','作为分隔符的第1个字段
    $ gawk 'BEGIN{FS=","} /11/{print $1}' data1
    
    3.2 匹配操作符

    匹配操作符(~)允许将正则表达式限定在记录中的特定数据字段。可以指定匹配操作符、数据字段变量以及要匹配的正则表达式。

    # 使用匹配操作符匹配以'data2'开头的行,并打印该行所有字段
    $ gawk 'BEGIN{FS=","} $2 ~ /^data2/ {print $0}' data1
    

    也可以使用'!'来排除正则表达式匹配

    # 在/etc/passwd文件中找到匹配不到rich的行,并打印第1个和最后1个字段
    $ gawk –F: '$1 !~ /rich/{print $1,$NF}' /etc/passwd
    
    3.3 数学表达式

    在gawk模式匹配中,可以使用任何常见的数学表达式:

    • ==
    • <=
    • <
    • >=
    • >
    # 仅打印/etc/passwd文件中,第4个域的值为0的行中的第1个字段
    $ gawk -F: '$4 == 0{print $1}' /etc/passwd
    

    相关文章

      网友评论

          本文标题:【Linux shell学习笔记-14-gawk进阶3】

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