文章插图
关系操作符
文章插图
逻辑操作符
三元操作符
文章插图
一元操作符
指数操作符
文章插图
字符串连接操作符
数组成员操作符
文章插图
正则表达式操作符
正则表达式操作符使用 ~和 !~分别代表匹配和不匹配 。
更多关于正则表达式请看后面的正则表达式部分正则表达式
AWK在处理正则表达式方面是非常强大的 , 使用简单的正则表达式可以处理非常复杂的问题 。
文章插图
文章插图
数组
AWK支持关联数组 , 也就是说 , 不仅可以使用数字索引的数组 , 还可以使用字符串作为索引 , 而且数字索引也不要求是连续的 。数组不需要声明可以直接使用 , 语法如下:
在AWK中 , 只支持一维数组 , 但是可以通过一维数组模拟多维 , 例如我们有一个3×3的三维数组
流程控制
流程控制语句与大多数语言一样 , 基本格式如下
文章插图
循环
循环操作与其他C系语言一样 , 主要包括 for , while , do...while , break , continue 语句 , 当然 , 还有一个 exit 语句用于退出脚本执行 。
文章插图
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
文章插图
文章插图
文章插图
文章插图
文章插图
用户自定义函数
函数是程序基本的组成部分 , AWK允许我们自己创建自定义的函数 。一个大型的程序可以被划分为多个函数 , 每个函数之间可以独立的开发和测试 , 提供可重用的代码 。
下面是用户自定义函数的基本语法
文章插图
输出重定向重定向操作符
到目前为止 , 我们所有的程序都是直接显示数据到了标准输出流 , 其实 , 我们也可以将输出重定向到文件 。重定向操作符跟在 print 和 printf 函数的后面 , 与shell中的用法基本一致 。
推荐阅读
- 送外卖真的赚钱吗 送外卖赚钱还是送快递赚钱
- 梦见着火了又被扑灭了 梦见着火但很快被扑灭了解梦
- 气温回复过快春茶不及采 泸州茶叶或减产三成
- 飞人乔丹的独特手表收藏
- 一分钟看完,2021年职场7大新趋势
- 黑茶具有收藏价值 虫屎茶属于高价产品
- 瑞安市,茶芽长势快 茶商收购忙
- 一马赫速度有多快?换算成每千米一小时是多少?
- 情侣间送礼物需谨慎,这6种背后都大有讲究,收藏以后慢慢用
- 如何甄别普洱茶的等级 好坏