本文主要介绍 awk 的内置函数以及字符串相关的处理函数。
内置函数
内置函数主要是数学相关的运算函数。
| 函数名 | 函数功能 |
|---|---|
| atan2 | 计算y/x 反正切值 |
| cos | cos值 |
| sin | sin值 |
| sqrt | 求平方根 |
| log | 自然数为底 |
| int | 强制转换为整型 |
| rand | rand(),返回0<= n < 1的值 |
| srand | srand(seed),以seed为种子 |
字符串相关的函数
转换为字符串
- 与”” 拼接
- 使用
sprintf(format-str, expr, expr),返回格式化的字符串 - tolower/toupper,大小写转换
字符串匹配/替换/查找函数
| 函数名字 | 函数原型以及含义 |
|---|---|
| index | index(src, pattern), 返回指定pattern的位置,注意0表示未找到,非0表示位置 |
| sub | sub(pattern, replacement, src),返回替换的数目 |
| gsub | gsub(pattern, replacement, src),替换所有的查找项 |
| match | match(src, pattern),RSTART,RLENGTH,返回0表示未找到 |
| length | 字符的个数 |
| blength | byte的个数 |
其它函数
- getline
- getline variable-name:读入下一行到variable-name变量
- getline < variable-name:将variable-name读入$O
- getline:将下一行读入$0
- close
- system(“command”):执行 shell 命令
- 时间相关的:
- mktime:mktime( YYYY MM DD HH MM SS[ DST ] ), mktime(“2010 11 01 00 00 00”)
- strftime(format, timestamp):timestamp可以由下面函数生成
- systme():返回1970-01-01到现在的整秒数
| 格式 | 描述 |
|---|---|
| %a | 星期几的缩写(Sun) |
| %A | 星期几的完整写法(Sunday) |
| %b | 月名的缩写(Oct) |
| %B | 月名的完整写法(October) |
| %c | 本地日期和时间 |
| %d | 十进制日期 |
| %D | 日期 08/20/99 |
| %e | 日期,如果只有一位会补上一个空格 |
| %H | 用十进制表示24小时格式的小时 |
| %I | 用十进制表示12小时格式的小时 |
| %j | 从1月1日起一年中的第几天 |
| %m | 十进制表示的月份 |
| %M | 十进制表示的分钟 |
| %p | 12小时表示法(AM/PM) |
| %S | 十进制表示的秒 |
| %U | 十进制表示的一年中的第几个星期(星期天作为一个星期的开始) |
| %w | 十进制表示的星期几(星期天是0) |
| %W | 十进制表示的一年中的第几个星期(星期一作为一个星期的开始) |
| %x | 重新设置本地日期(08/20/99) |
| %X | 重新设置本地时间(12:00:00) |
| %y | 两位数字表示的年(99) |
| %Y | 当前月份 |
| %Z | 时区(PDT) |
| %% | 百分号(%) |
本文完