快收藏! 30 分钟包你学会 AWK( 三 )


快收藏! 30 分钟包你学会 AWK

文章插图
关系操作符
快收藏! 30 分钟包你学会 AWK

文章插图
逻辑操作符
 
三元操作符
快收藏! 30 分钟包你学会 AWK

文章插图
一元操作符
 
指数操作符
快收藏! 30 分钟包你学会 AWK

文章插图
字符串连接操作符
 
数组成员操作符
快收藏! 30 分钟包你学会 AWK

文章插图
正则表达式操作符
正则表达式操作符使用 ~和 !~分别代表匹配和不匹配 。
 
更多关于正则表达式请看后面的正则表达式部分
正则表达式
AWK在处理正则表达式方面是非常强大的 , 使用简单的正则表达式可以处理非常复杂的问题 。
快收藏! 30 分钟包你学会 AWK

文章插图

快收藏! 30 分钟包你学会 AWK

文章插图
数组
AWK支持关联数组 , 也就是说 , 不仅可以使用数字索引的数组 , 还可以使用字符串作为索引 , 而且数字索引也不要求是连续的 。数组不需要声明可以直接使用 , 语法如下:
 
在AWK中 , 只支持一维数组 , 但是可以通过一维数组模拟多维 , 例如我们有一个3×3的三维数组
 
流程控制
流程控制语句与大多数语言一样 , 基本格式如下
快收藏! 30 分钟包你学会 AWK

文章插图
循环
循环操作与其他C系语言一样 , 主要包括 for  ,  while  ,  do...while  ,  break  ,  continue 语句 , 当然 , 还有一个 exit 语句用于退出脚本执行 。
快收藏! 30 分钟包你学会 AWK

文章插图
exit 用于退出脚本 , 参数为退出的状态码 , 可以通过shell中的 $? 获取
函数
内建函数
AWK提供了很多方便的内建函数供编程人员使用 。由于函数比较多 , 个人觉得单纯看每个函数的使用也没有什么实际意义 , 比较容易遗忘 , 因此 , 这里只简单的列出常用的一些函数 , 只需要对其有个印象即可 , 使用的时候再去 查手册 效果会更好一些吧 。
数学函数
  • atan2(y, x)
  • cos(expr)
  • exp(expr)
  • int(expr)
  • log(expr)
  • rand
  • sin(expr)
  • sqrt(expr)
  • srand([expr])
字符串函数
  • asort(arr [, d [, how] ])
  • asorti(arr [, d [, how] ])
  • gsub(regex, sub, string)
  • index(str, sub)
  • length(str)
  • match(str, regex)
  • split(str, arr, regex)
  • sprintf(format, expr-list)
  • strtonum(str)
  • sub(regex, sub, string)
  • substr(str, start, l)
  • tolower(str)
  • toupper(str)
时间函数
  • systime
  • mktime(datespec)
  • strftime([format [, timestamp[, utc-flag]]])
字节操作函数
  • and
  • compl
  • lshift
  • rshift
  • or
  • xor
其它
快收藏! 30 分钟包你学会 AWK

文章插图

快收藏! 30 分钟包你学会 AWK

文章插图

快收藏! 30 分钟包你学会 AWK

文章插图

快收藏! 30 分钟包你学会 AWK

文章插图

快收藏! 30 分钟包你学会 AWK

文章插图
用户自定义函数
函数是程序基本的组成部分 , AWK允许我们自己创建自定义的函数 。一个大型的程序可以被划分为多个函数 , 每个函数之间可以独立的开发和测试 , 提供可重用的代码 。
下面是用户自定义函数的基本语法
快收藏! 30 分钟包你学会 AWK

文章插图
输出重定向重定向操作符
到目前为止 , 我们所有的程序都是直接显示数据到了标准输出流 , 其实 , 我们也可以将输出重定向到文件 。重定向操作符跟在 print 和 printf 函数的后面 , 与shell中的用法基本一致 。


推荐阅读