当前位置: 首页 > news >正文

Linux学习之awk函数

awk里边的函数分为内置函数自定义函数
内置函数有下边的几种:

算术函数(arithmetic)
字符串函数(string)
输入/输出函数和通用函数(input/output, and general)

自定义函数格式如下:

function 函数名(参数){awk语句集return awk变量
}

算术函数

函数名功能
atan2(x, y)x/y的反正切,x和y以弧度为单位
cos(x)x的余弦,x以弧度为单位
exp(x)x的指数函数,exp是高等数学里以自然常数e为底的指数函数。exp(x)表示的是e的x次方
int(x)x的整数部分,取靠近零一侧的值
log(x)x的自然对数
rand()比0大比1小的随机浮点值
sin(x)x的正弦,x以弧度为单位
sqrt(x)x的平方根
srand(x)为计算随机数指定一个种子值

字符串函数

函数名功能
asort(s [,d ])将数组 s 按数据元素值排序。索引值会被替换成表示新的排序顺序的连续数字。另外,如果指定了d,则排序后的数组会存储在数组d中
asorti(s [,d ])将数组 s 按索引值排序。生成的数组会将索引值作为数据元素值,用连续数字索引来表明排序顺序。另外如果指定了 d ,排序后的数组会存储在数组 d 中
gensub(r , s , h [, t ])查找变量$0 或目标字符串 t (如果提供了的话)来匹配正则表达式r 。如果 h 是一个以 g 或 G 开头的字符串,就用 s 替换掉匹配的文本。如果 h 是一个数字,它表示要替换掉第 h 处 r 匹配的地方
gsub(r , s [,t ])查找变量$0 或目标字符串t(如果提供了的话)来匹配正则表达式 r 。如果找到了,就全部替换成字符串 s
index(s , t )返回字符串 t 在字符串 s 中的索引值,如果没找到的话返回0length([s ])返回字符串 s 的长度;如果没有指定的话,返回$0的长度
match(s , r [,a ])返回字符串 s 中正则表达式 r 出现位置的索引。如果指定了数组 a ,它会存储 s 中匹配正则表达式的那部分
split(s , a [,r ])将 s 用FS 字符或正则表达式 r (如果指定了的话)分开放到数组 a 中。返回字段的总数
sprintf(format , variables )用提供的 format 和 variables 返回一个类似于printf输出的字符串
sub(r , s [,t ])在变量$0 或目标字符串 t 中查找正则表达式r 的匹配。如果找到了,就用字符串 s 替换掉第一处匹配
substr(s , i [,n ])返回 s 中从索引值 i 开始的 n 个字符组成的子字符串。如果未提供 n ,则返回 s 剩下的部分
tolower(s )将 s 中的所有字符转换成小写
toupper(s )将 s 中的所有字符转换成大写

自定义函数

自定义函数需要在BEGIN例程之前进行定义,然后可以在BEGIN例程、主输入循环和END例程都可以使用。
awk 'function sum(a,b){return a+b}BEGIN{ print sum(3+7)}'定义了一个sum函数,返回两个数的值。
在这里插入图片描述

此文章为8月Day 13学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。

http://www.lryc.cn/news/122141.html

相关文章:

  • Redis的数据结构到底是一种什么样的结构?
  • eclipse 导入项目js报错问题
  • 《HeadFirst设计模式(第二版)》第七章代码——外观模式
  • 前端杂项-个人总结八股文的背诵方案
  • 利用 3D 地理空间数据实现Cesium的沉浸式环境
  • 微服务——ES实现自动补全
  • 北斗+5G 织就精确定位的“天罗地网”
  • Ansible Roles详解
  • 微服务学习笔记-基本概念
  • Linux查看GPU显卡/CPU内存/硬盘信息
  • SQLAlchemy 入门:Python 中的 SQL 工具包和 ORM
  • react Hook+antd封装一个优雅的弹窗组件
  • HICP学习--BGP综合小实验
  • grafana中利用变量来添加dashboard详情页地址实现点击跳转
  • 正则表达式练习
  • leetcode做题笔记73矩阵置零
  • 【2.1】Java微服务: Nacos的使用
  • vue安装及环境配置
  • java使用正则表达式时遇到的问题
  • Git介绍及常用命令详解
  • 赛事 | 第25届中国机器人及人工智能大赛全国决赛榜单发布
  • JavaScript+Asp.Net MVC5同时下载多个文件
  • 如何实现前后端分离-----前端笔记
  • Ceph入门到精通-分布式存储产品的测试实践
  • 【java】设计模式——单例模式
  • 【编织时空一:探究顺序表与链表的数据之旅】
  • Tesseract用OpenCV进行文本检测
  • XLua案例学习
  • Linux:Shell编程之免交互
  • 最强自动化测试框架Playwright(18)- 执行js脚本