awk(1) awk中的函数
awk 中的函数
1、字符串
1.1 index(原字符串,子字符串)
如果子字符串在原字符串中第一次出现的位置,如果不存在返回0
1.2 length(字符串) 返回字符串的长度
1.3 match(原串,正则表达式)
awk 会在原串中批匹配表达式的子字符串,若有多个子字符串,则以原字符串最左方的子字符串为准。
awk 找到该字符串后会依据此字符串进行下列操作
1)设定awk 内建变量 RSTART RLENGTH
RSTART =匹配到的子字符串在原串中的位置,如果是0 表示没有匹配的子字符串
RLENGTH =匹配到子字符串的长度,-1 表示没有匹配的子字符串
2)传回RSTART 的值
示例:
$ awk 'BEGIN{match("banana",/(an)+/);print RSTART,RLENGTH}'
2 4
1.4 split(原串,数组名,分割符(也可以是正则))
将原串按照分割符进行分割成一个个field,并且用数组记录分割开的field
示例:
$ awk 'BEGIN{ a="1P2p3";split(a,arr,/[pP]/);for(i in arr){print arr[i]} }'
1
2
3
1.5 sub(正则表达式,新字符串,原串)
原串中按照正则表达式进行匹配(最左边匹配),如果匹配到,就替换成新字符串。
如果指定新串是空时,就是去除指定的字符串。
如果原串没有指定,默认为$0
1.5.1 新的字符串可以使用 & 表示匹配到的字符串。
示例:
$ awk 'BEGIN{a="banan12a.34an6a";sub(/(an)+[0-9]*/,"[&]",a);print a}'
b[anan12]a.34an6a
1.5.2 sub 和 match 搭配可以取出原串中符合条件的子串
示例:
awk '
BEGIN{
data = "p12-P34 P56-p61"
while( match( data ,/[0-9]+/) >0){
print substr(data,RSTART, RLENGTH )
sub(/[0-9]+/,"",data)
}
}
' $
结果:
12
34
56
61
说明:match 验证data 包含数字(RSTART>0)
substr 进行字符串的截取
sub 把最左边匹配到的数字删除
1.6 gsub(正则表达式,新字符串,原串)
和sub()的区别
1)会替换所有符合条件的子字符串
2)返回被替换的子字符串的个数
1.7 substr(字串,起始位置,长度)
截取从开始位置,指定长度的子字符串,如果没有指定长度,则到字符末尾。
1.8、sprintf(格式,数据列,数据列,数据列,.....)
和awk printf 相同,不同的是此函数会把打印的字符串返回
2、数学函数
int(x) 返回数值的整数部分 int(7.8)=7 int(-7.89)=-7
sqrt(x) x的平方根
exp(x) e的x次方
rand() 0到1 的随机数。除非使用者指定rand()函数的起始seed,否则每次执行awk
时,rand() 都将使用同一个内定的seed 来产生随机数。
srand(x) 指定rand()函数的起始seed,若没有指定x,awk 会用执行时的日期和时间为rand()函数的seed。每一次生成随机数都要指定seed,否则每一次生成的随机数都一样。并且如果指定了seed , 此seed不会变,除非再指定
示例:$ awk 'BEGIN{srand();x=rand();print x}'
awk(1) awk中的函数相关推荐
- awk 分隔符_awk 中的字段、记录和变量 | Linux 中国
这个系列的第二篇,我们会学习字段,记录和一些非常有用的 Awk 变量.-- Seth Kenlon Awk 有好几个变种:最早的 awk,是 1977 年 AT&T 贝尔实验室所创.它还有一些 ...
- shell中的函数shell中的数组告警系统需求分析
2019独角兽企业重金招聘Python工程师标准>>> 20.16/20.17 shell中的函数 函数的概念 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用 ...
- 20.17 shell中的函数
2019独角兽企业重金招聘Python工程师标准>>> 20.17 shell中的函数 函数:就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 ...
- Linux centosVMware shell中的函数、shell中的数组、
一.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function _name() { command ...
- 《APUE》中的函数整理
第1章 unix基础知识 1. char *strerror(int errnum) 该函数将errnum(就是errno值)映射为一个出错信息字符串,返回该字符串指针.声明在string.h文件中. ...
- shell中的函数、shell中的数组、 告警系统需求分析
为什么80%的码农都做不了架构师?>>> 20.16/20.17 shell中的函数 shell中的函数 说明:函数就是子shell, 是一个代码段,定义完函数就可以引用它. ...
- linux awk入门,awk入门应用
awk概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux ...
- linux awk命令详解(一) awk语法 awk运算 awk数组
===============================原文地址http://www.cnblogs.com/emanlee/p/3327576.html 好文章!!! Table of Con ...
- (P9)awk:什么是awk,awk简单用法,awk脚本语法,awk执行过程
文章目录 1.什么是awk 2.awk简单用法 3.awk脚本语法 4.awk执行过程 1.什么是awk awk 是什么 awk 是一种用于处理数据和生成报告的编程语言 awk 可以在命令行中进行一些 ...
最新文章
- 聊聊asp.net中Web Api的使用
- 基于 Slax 构建译者专用 Linux
- SQL Server Management Studio清除历史登陆记录
- php mysql管理_MySQL 连接与管理
- Unity下载文件一(www协程下载)
- Day13 - Ruby比一比: instance_eval 和 class_eval方法
- 德赛西威领投智驾科技B轮3亿元,加速智能驾驶人人可享
- 关系型数据和文档型数据库有什么区别?
- 十五. Go学习:goroute和cahnnel
- PowerBI制作报表背景图
- 解决QT-mingw32编译“ too many sections(...)”问题
- 如何制作视频画中画?制作画中画视频的方法
- 微软数据中心将到南非!AWS也将要跟进
- 理解Anchor、RPN真值与预测量、RPN卷积网络
- Learning to Memorize Entailment and Discourse Relations for Persona-Consistent Dialogues论文学习
- BUAACTF 2021校赛
- 【在线可测】通用中文点选验证码识别
- 【转】人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[4]——一步莲华
- linux下怎么查看光模块信息,cisco交换机如何查看光模块的信息的相关推荐_ChinaUnix论坛...
- 计算机基础(16)——Office和WPS(3)——什么查看自己的WPS是哪个版本