zoukankan      html  css  js  c++  java
  • (3)awk命令行结构和语法结构

    awk命令行结构和语法结构

    awk命令行结构

    awk [ -- ] program-text file ...        (1)
    awk -f program-file [ -- ] file ...     (2)
    awk -e program-text [ -- ] file ...     (3)

    其中

    program-text即awk命令行中awk代码部分,一般使用单引号包围。
    -f program-file表示awk代码部分写在文件中,然后使用-f选项去引用这个文件。
    -e program-text也表示使用awk代码块,所有语法1和语法3基本是等价的,但是如果使用-f,又要在代码行中写awk代码,则必须使用-f和-e,即awk -f file -e 'awk-code',而不能是awk -f file 'awk-code'

    awk语法结构

    awk语法结构即awk代码部分的结构。

    awk的语法充斥着pattern{action}的模式,它们称为awk rule。

    关于awk的语法:
    
    多个pattern{action}可以直接连接连用
    action中多个语句如果写在同一行,则需使用分号分隔
    pattern部分用于筛选行,action表示在筛选通过后执行的操作
    pattern和action都可以省略
    省略pattern,等价于对每一行数据都执行action
    例如:awk '{print $0}' a.txt
    省略代码块{action},等价于{print}即输出所有行
    例如:awk '/Alice/' a.txt等价于awk '/Alice/{print $0}' a.txt
    省略代码块中的action,表示对筛选的行什么都不做
    例如:awk '/Alice/{}' a.txt
    pattern{action}任何一部分都可以省略
    例如:awk '' a.txt

    pattern和action

    对于pattern{action}语句结构(都称之为语句块),其中的pattern部分可以使用下面列出的模式:

    # 特殊pattern
    BEGIN
    END
    
    # 布尔代码块
    /regular expression/    # 正则匹配成功与否 /a.*ef/{action}
    relational expression   # 即等值比较、大小比较 3>2{action}
    pattern && pattern      # 逻辑与 3>2 && 3>1 {action}
    pattern || pattern      # 逻辑或 3>2 || 3<1 {action}
    ! pattern               # 逻辑取反 !/a.*ef/{action}
    (pattern)               # 改变优先级
    pattern ? pattern : pattern  # 三目运算符决定的布尔值
    
    # 范围pattern,非布尔代码块
    pattern1, pattern2      # 范围,pat1打开、pat2关闭,即flip,flop模式
  • 相关阅读:
    mysql怎么导入大文件的sql文件
    php函数研究
    php实现实现代码多主从,切换,轮询,健康检查
    php实现单个用户禁止重复登录,防止同一用户同时登陆
    php使用p3p实现cookies跨域设置 实现单点登录,全站登录
    实现页面浏览统计
    遍历目录删除指定MD5值的文件
    boot.img的修改
    “逃离大厦”游戏的破解
    Android漏洞——将Android恶意代码隐藏在图片中
  • 原文地址:https://www.cnblogs.com/liujunjun/p/12389097.html
Copyright © 2011-2022 走看看