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. jQuery Autocomplete
  2. CS起源pointermap找基址+工具函数测试
  3. CodeDay#8:支付宝都在用的容器技术了解一下
  4. mysql主外键引用关系,关于mysql:数据主/外键关系
  5. [转贴]暴雪的霸王条款是否合理?
  6. bootstrap之glyphicon字体图标
  7. 细说JDK动态代理的实现原理
  8. 小米MIX4发布会还有新品?小米全面屏电视PRO官宣
  9. easyUI datebox 日期空间斜杠格式化。例如将日期空间中显示2017-03-13,改为2017/03/13...
  10. PostgreSQL常用查看命令
  11. dell 7447加装SSD
  12. 省市区经纬度地图json获取方法
  13. 物流项目面试题 整理终版
  14. 操作系统以及Linux起源
  15. 服务器中的软件如何备份文件夹在哪里找,PS的自动备份文件保存位置在哪里?
  16. laravel 微信支付easywechat
  17. EB Tresos安装错误 No Package
  18. 微信公众号用什么软件编辑?
  19. 论文浅尝 | PAKDD2020 - 利用支持集中匹配信息的 few shot 事件分类方法
  20. 华为鸿蒙系统操作教程_华为鸿蒙系统2.0怎么安装 鸿蒙系统2.0安装教程[多图]

热门文章

  1. Maven相关常见面试题
  2. 汽车汽配行业经销商管理平台实时掌握一线状态,提升企业决策效率
  3. noj 1142 F 踩气球
  4. jmeter的java请求(socket接口)
  5. STM32F429 VCAP12电容错误死机
  6. 【Linux】system V 消息队列 | system V 信号量(简单赘述)
  7. 电脑免费简单又好用的记事本app软件推荐
  8. 网络基础BGP-IBGP-EBGP
  9. CTF题目中关于图片写隐
  10. 灵星之光-1:调制解调、卷积神经网络异曲同工