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中的函数相关推荐

  1. awk 分隔符_awk 中的字段、记录和变量 | Linux 中国

    这个系列的第二篇,我们会学习字段,记录和一些非常有用的 Awk 变量.-- Seth Kenlon Awk 有好几个变种:最早的 awk,是 1977 年 AT&T 贝尔实验室所创.它还有一些 ...

  2. shell中的函数shell中的数组告警系统需求分析

    2019独角兽企业重金招聘Python工程师标准>>> 20.16/20.17 shell中的函数 函数的概念 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用 ...

  3. 20.17 shell中的函数

    2019独角兽企业重金招聘Python工程师标准>>> 20.17 shell中的函数 函数:就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这 ...

  4. Linux centosVMware shell中的函数、shell中的数组、

    一.shell中的函数 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段代码时直接调用这个小单元的名字即可. 格式: function _name() { command ...

  5. 《APUE》中的函数整理

    第1章 unix基础知识 1. char *strerror(int errnum) 该函数将errnum(就是errno值)映射为一个出错信息字符串,返回该字符串指针.声明在string.h文件中. ...

  6. shell中的函数、shell中的数组、 告警系统需求分析

    为什么80%的码农都做不了架构师?>>>    20.16/20.17 shell中的函数 shell中的函数 说明:函数就是子shell, 是一个代码段,定义完函数就可以引用它. ...

  7. linux awk入门,awk入门应用

    awk概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux ...

  8. linux awk命令详解(一) awk语法 awk运算 awk数组

    ===============================原文地址http://www.cnblogs.com/emanlee/p/3327576.html 好文章!!! Table of Con ...

  9. (P9)awk:什么是awk,awk简单用法,awk脚本语法,awk执行过程

    文章目录 1.什么是awk 2.awk简单用法 3.awk脚本语法 4.awk执行过程 1.什么是awk awk 是什么 awk 是一种用于处理数据和生成报告的编程语言 awk 可以在命令行中进行一些 ...

最新文章

  1. 聊聊asp.net中Web Api的使用
  2. 基于 Slax 构建译者专用 Linux
  3. SQL Server Management Studio清除历史登陆记录
  4. php mysql管理_MySQL 连接与管理
  5. Unity下载文件一(www协程下载)
  6. Day13 - Ruby比一比: instance_eval 和 class_eval方法
  7. 德赛西威领投智驾科技B轮3亿元,加速智能驾驶人人可享
  8. 关系型数据和文档型数据库有什么区别?
  9. 十五. Go学习:goroute和cahnnel
  10. PowerBI制作报表背景图
  11. 解决QT-mingw32编译“ too many sections(...)”问题
  12. 如何制作视频画中画?制作画中画视频的方法
  13. 微软数据中心将到南非!AWS也将要跟进
  14. 理解Anchor、RPN真值与预测量、RPN卷积网络
  15. Learning to Memorize Entailment and Discourse Relations for Persona-Consistent Dialogues论文学习
  16. BUAACTF 2021校赛
  17. 【在线可测】通用中文点选验证码识别
  18. 【转】人生如梦游戏间,RPG游戏开源开发讲座(JAVA篇)[4]——一步莲华
  19. linux下怎么查看光模块信息,cisco交换机如何查看光模块的信息的相关推荐_ChinaUnix论坛...
  20. 计算机基础(16)——Office和WPS(3)——什么查看自己的WPS是哪个版本

热门文章

  1. COMSOLE/FreeCAD接触对使用
  2. (附源码)计算机毕业设计SSM大学生心理咨询系统 1
  3. java+Mysql 图书管理系统(idea)
  4. 如何在线制作QQ微信表情包
  5. CBA总决赛:北京4-2击败新疆夺史上第二冠
  6. WIFI 功放芯片确定功率大小
  7. u盘插电脑上无法显示、文件损坏怎么恢复数据,驱动人生解决方案
  8. 夏秋之交,养生宜养脾胃,脾胃虚弱的人,坚持做好三件事
  9. linux嵌入sql语句,嵌入SQL/C语言---(informix)
  10. 基于注意力机制的seq2seq模型