awk 内置函数 —— 筑梦之路
awk内置了许多函数,这些函数可以帮助我们更方便地处理文本数据。以下是一些常用的awk内置函数:
1. 数学函数
atan2(y, x):返回y/x的反正切,其值的范围为-π/2到π/2。
cos(x):返回x的余弦;x是弧度。
sin(x):返回x的正弦;x是弧度。
exp(x):返回e的x次幂。
int(x):返回x的整数部分。
log(x):返回x的自然对数。
sqrt(x):返回x的平方根。
rand():返回一个0到1之间的随机数,包含0。
srand([Expr]):设置Expr为随机数生成器的种子,省略Expr则使用某天的时间。
由于awk使用固定的算法生成随机数,每次awk运行时随机数是可预测的,使用srand()函数设置不同的随机数种子,可以让每次awk运行时产生不可预测的随机数。用法示例:
~$ echo |awk 'BEGIN{srand()}{print rand()}'
0.0286104
2. 字符串函数gsub(r, s [, t]):在字段t中用s替换正则表达式r的所有匹配项;如果省略t,则使用$0,在整个记录中替换。
sub(r, s):单个替换,与gsub()相同,但最多有一个替换。
index(s, t):返回字符串t在s中的位置,如果t不存在则返回0。
length([s]):返回字符串s的长度,如果没有指定s则返回整个记录的长度。
match(s, r):返回字符串s中正则表达式r的第一个最长匹配项的索引,如果没有匹配项则返回0。
split(s, a [, r]):正则表达式r将字符串s拆分为多个字段,并将这些字段加载到数组a中,返回字段数;如果省略r,则使用FS。
sprintf(format, expr, ...):返回一个格式化字符串,类似于printf语句。
substr(s, i [, n]):返回字符串s从位置i开始的n个字符的子串;如果省略n,则返回从i开始到字符串末尾的子串。
tolower(s):返回字符串s的小写形式。
toupper(s):返回字符串s的大写形式。
3. 时间函数mktime(specification):将一个按照特定格式给出的日期/时间字符串或时间元组转换为从Unix纪元开始的秒数。用法示例:
~$ echo|awk '{print mktime("2024 02 28 13 26 25")}'
1709097985
strftime([format [, timestamp [, utc]]]):格式化给定的时间戳(传递给C strftime函数)。
如果格式参数丢失,则使用“%c”。
如果时间戳参数丢失,则使用系统时间的当前值。
如果utc参数存在且非零,则结果以utc为单位。否则使用当地时间。
systime():返回当前的系统时间(从1970年1月1日开始的秒数)。
awk命令的内置函数为我们提供了丰富的文本处理功能,无论是字符串操作、数值计算还是时间处理,awk都能轻松应对。通过学习和掌握这些内置函数,你将能够更加高效地进行Shell编程和文本处理。
原文地址:https://blog.csdn.net/qq_34777982/article/details/136394066
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!