gawk

作者: SeTriones | 来源:发表于2017-09-20 23:04 被阅读0次

    gawk基本使用

    gawk options program file

    • gawk -F '{commond1;command2}'
    • gawk -F -f script_file text
      script_file:
    {
      command1
      command2
    }
    

    gawk的内建变量

    • FIELDWIDTHS 空格分开,确切指定了每一个字段的宽度
    • FS 输入字段分隔符(-F)
    • RS 输入数据行分隔符
    • OFS 输出字段分隔符
    • ORS 输出行分隔符
    • FNR 当前数据文件数据行数量
    • NR 累计处理的数据行数量
    • NF 当年数据行中字段总数

    默认RS和ORS都是换行符

    自定义变量

    • var='test'
    • var=4

    在命令行给变量赋值

    gawk -f script n=2 text
    变量n的取值就是2
    如果要在BEGIN块让命令行赋值生效,需要加上-v参数,在-f script之前

    数组

    arr[index]=value
    index可以是字符串,也可以是数字

    遍历数组

    for (var in array) { command }
    var是index

    删除元素

    delete arr[index]

    正则匹配

    行匹配

    • gawk '/regex/{command}'

    字段匹配

    • gaw '$x ~ /regex/{command}'
    • gaw '$x !~ /regex/{command}'

    if

    • if (condition) command; else command
    • 多行if
    if (condition) {
      command1
      command2
    } else {
      command3
      command4
    }
    

    while

    while (condition) {
      command...
    }
    

    do while

    和C一样

    for

    和C一样

    定义函数

    function name([vars]) {
      statsments
    }
    

    最好放在BEGIN之前。

    内建函数

    数学和字符串两类,参考man page(Numeric Functions和String Functions)

    相关文章

      网友评论

          本文标题:gawk

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