Linux学习之awk函数

news2025/1/11 8:04:18

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.coloradmin.cn/o/872890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业计算机服务器中了360后缀勒索病毒怎么办,勒索病毒解密数据恢复

随着计算机技术的不断发展,企业的办公系统得到了很大提升,但是随之而来的网络安全威胁也不断增加,勒索病毒的攻击事件时有发生。近期,我们收到某地连锁超市的求助,企业的计算机服务器遭到了360后缀勒索病毒攻击&#x…

【算法题】螺旋矩阵III (求解n阶蛇形矩阵)

一、问题的提出 n阶蛇形矩阵的特点是按照图1所示的方式排列元素。n阶蛇形矩阵是指矩阵的大小为nn,其中n为正整数。 题目背景 一个 n 行 n 列的螺旋矩阵可由如图1所示的方法生成,观察图片,找出填数规律。填数规则为从 1 开始填到 nn。 图1 …

SPI协议简介

什么是SPI? SPI是串行外设接口(Serial Peripheral Interface)的缩写,是美国摩托罗拉公司(Motorola)最先推出的一种同步串行传输规范,也是一种单片机外设芯片串行扩展接口,是一种高速…

[管理与领导-13]:IT基层管理者 - 激励 - 除了薪资奖金,还有哪些激励手段?

目录 前言 第1章 问题现象:对激励的误解 第一个误解:就是激励就是给钱 第二个误解:就是激励当成了升职 第三个误解:把激励当成忽悠 第2章 背后原因 1 没有找到和满足员工真正的需求:不同人,需求不同…

【数据结构与算法——TypeScript】树结构Tree

【数据结构与算法——TypeScript】 树结构(Tree) 认识树结构以及特性 什么是树? 🌲 真实的树:相信每个人对现实生活中的树都会非常熟悉 🌲 我们来看一下树有什么特点? ▫️ 树通常有一个根。连接着根的是树干。 ▫️ 树干到…

代码随想录算法训练营之JAVA|第二十六天| 332. 重新安排行程

今天是第26天刷leetcode,立个flag,打卡60天。 算法挑战链接 332. 重新安排行程https://leetcode.cn/problems/reconstruct-itinerary/ 第一想法 题目理解:将多个行程的ticket 用第一个行程的结束地点作为下一个行程的开始地点,…

人工智能轨道交通行业周刊-第55期(2023.8.7-8.13)

本期关键词:北京智慧交通规划、成都数智化规划、关门车、集装箱标志、大模型隐私、视觉大模型 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交…

定量分析计算51单片机复位电路工作原理

下面画出等效电路图 可以知道单片机内必然有一个电阻RX,为了简化分析,我们假设他是线性电阻(不带电容,电感的支路) 还有一个基础知识: 电容器的充电放电曲线: 还需要知道电容电压的变化是连续…

【链表】经典链表题LeetCode

文章目录 160. 相交链表 简单🔥206. 反转链表 简单🔥876. 链表的中间结点 简单234. 回文链表 简单🔥141. 环形链表 简单🔥142. 环形链表 II 中等🔥21. 合并两个有序链表 简单🔥2. 两数相加 中等&#x1f52…

AI Chat 设计模式:14. 适配器模式

本文是该系列的第十四篇,采用问答式的方式展开,问题由我提出,答案由 Chat AI 作出,灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 关于适配器模式,如果由浅入深的来考察,你会依次提出什么问题…

Linux零基础快速入门到精通

一、操作系统概述 二、初始Linux Linux的诞生 Linux内核 Linux发行版 小结 三、虚拟机 认识虚拟机 虚拟化软件及安装 VMware Workstation 17 Pro安装教程https://blog.csdn.net/weixin_62332711/article/details/128695978 远程连接Linux系统 小结 扩展-虚拟机快照 …

剑指offer14-II.剪绳子II

这道题和上一道题剪绳子I是一样的,只是数据的规模变大了,由上一题可知,要使得乘积最大就是要尽可能的把它分成全是3的段,如果绳子长度刚好是3的倍数就全部分成3,如果对3取余是2,那就把它分成一个2剩下的全分…

Linux命令200例:dd命令详解及实际应用场景

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…

nginx禁用3DES和DES弱加密算法

nginx禁用3DES和DES弱加密算法 项目背景 最近护网行动,收到漏洞报告,如下: 漏洞名称SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】详细描述TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。 TLS…

【vue2类型助手】vue2-cli 实现为 vue2 项目中的组件添加全局类型提示

实现 vue2 全局组件提示 vue2 项目全局注册组件直接使用没有提示 由于vue2中使用volar存在很大的性能问题,所以只能继续使用vetur,但是这样全局组件会没有提示,这对于开发来说,体验十分不友好,所以开发此cli并借助ve…

时序预测 | MATLAB实现基于LSTM长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于LSTM长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于LSTM长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 Matlab实现LSTM长短期记忆神经…

OpenCV基本操作——算数操作

目录 图像的加法图像的混合 图像的加法 两个图像应该具有相同的大小和类型,或者第二个图像可以是标量值 注意:OpenCV加法和Numpy加法之间存在差异。OpenCV的加法是饱和操作,而Numpy添加的是模运算 import numpy as np import cv2 as cv imp…

k8s 自身原理 4

前面咱们分享了 mater 和 worker 节点里面都有哪些组件,他们又是各自主要负责的工作是什么,现在我们心里应该都有数了吧 master 节点: etcd 存储资源配置,ApiServer 提供 RESTful Api 用于交互,scheduler 用于调度 p…

通过将信号频谱与噪声频谱进行比较,自动检测适当的带通滤波器转折频率研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

低代码已经发展到什么水平了

陈老老老板🦸 👨‍💻本文专栏:生活(主要讲一下自己生活相关的内容) 👨‍💻本文简述:生活就像海洋,只有意志坚强的人,才能到达彼岸。 👨‍💻上一篇…