• awk语言


    awk是一种用于处理文本的编程语言工具,一种模式扫描和处理语言。

    使用类似于C的语法,并在很多方面类似于shell编程语言。awk支持流程控制、数学运算、进程控制语句设置内置的变量和函数。

    awk不会修改输入文件的内容。

    awk命令的格式

    格式1:awk [option] 'program-statements' [input-file]...

    执行命令行上的awk程序语句,若一行上有多个awk语句,使用分号(;)间隔

    格式2:awk [option] -f program-file [input-file]...

    执行脚本文件program-file中的awk语句

    常用参数

    -F fs:在awk中,默认的字段分隔符一般是空格符或TAB,在-F后面设置字段分隔符

    -v var=val:对变量var赋初值为val,可以是内置变量也可以是自定义变量

    awk中的每一个语句由两部分组成:模式(pattern)和相应的动作(actions)。只要模式匹配,awk就会执行相应的动作。动作部分由一个或多个命令、函数、表达式组成,其间由换行符或分号隔开,并位于大括号内。

    1.pattern和{actions}可以省略,但不能同时省略

    2.pattern省略时,对所有的输入行执行{actions}

    3.{actions}省略时,打印匹配行

    模式部分可以是:

    1./regular expression/:扩展的正则表达式

    2.relational expression:关系表达式

    3.pattern1,pattern2:范围模式,匹配行的范围

    4.BEGIN:指定第一条输入记录被处理之前要执行的动作,通常在此设置全局变量

    5.END:指定最后一条记录被读取之后要执行的动作,通常在此输出统计数据

    动作部分可以是:

    1.变量或数组赋值

    2.输入/输出语句

    3.内置函数和自定义函数

    4.流程控制语句

    awk命令的一般形式

    awk 'BEGIN {actions}

      pattern1 {actions}

      ...

      pattern2 {actions}

      END {actions}' input-file

    步骤1:

    如果存在BEGIN,首先执行它指定的actions

    步骤2:

    从输入中读取一行,称为一条输入记录

    步骤3:

    将读入的记录分割成数个字段,将第一个字段放入变量$1,第二个放入变量$2,以此类推。$0表示整条记录。字段分隔符可以通过选项-F指定,否则使用默认分隔符。

    步骤4:

    把当前输入记录依次与每一个语句中pattern比较:如果匹配,就执行对应的actions;如果不匹配,就跳过对应的actions,直到完成所有的语句。

    步骤5:

    当一条输入记录处理完毕后,awk读取输入的下一行,重复处理直到所有输入处理完毕。

    步骤6:

    如果输入是文件列表,按顺序处理列表中的每个文件。

    步骤7:

    处理完所有输入后,若存在END,则执行相应的actions。

    awk常用的内置变量

    NF      当前记录中的字段数

    NR      当前记录数

    FS      字段分隔符(默认是空格)

    RS      记录分隔符(默认是一个换行符)

    OFS     输出字段分隔符

    ORS     输出记录分隔符

    IGNORECASE  如果为真,则进行忽略大小写的匹配

  • 相关阅读:
    CSS 文本换行及指定行数显示
    JavaScript随机生成六位数
    Vue 添加评论,node作后台保存到MongoDB数据库中
    详情页面中根据ID请求数据
    多线程学习笔记
    串口 PLC 编程FAQ
    NI CWGraph 显示波形图
    华为企业级AS111-S,比较垃圾的地方
    jqmobile FAQ
    给easyui datebox扩展一个清空按钮,无侵入
  • 原文地址:https://www.cnblogs.com/custa/p/1868659.html
Copyright © 2020-2023  润新知