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编程和文本处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值