awk 数组学习

awk 数组学习awk是Linux一个必不可少的文本处理工具,其编程简单,功能强大。其中awk处理文本的几块比较常用:1、行分隔;2、正则表达式匹配;3、字符串处理;4、awk数组。接下来主要介绍一下awk数组的相关内容。awk数组特点:(1)、是一种关联数组(AssociativeArrays),下表可以是数字也可以是字符串,(2)、数组名和元素无需提前声明,(3)、无需指定数…

大家好,又见面了,我是你们的朋友全栈君。

awk是Linux一个必不可少的文本处理工具,其编程简单,功能强大。其中awk处理文本的几块比较常用:1、行分隔 ; 2、正则表达式匹配 ;3、字符串处理 ; 4、awk数组。接下来主要介绍一下awk数组的相关内容。
awk数组特点:
(1)、是一种关联数组(Associative Arrays),下表可以是 数字 也可以 是字符串, 
(2)、数组名 和 元素 无需提前声明,
(3)、无需指定数组元素的个数
所以awk的数组使用非常灵活。

1、建立awk数组

awk ‘BEGIN{ {a[“你好”]=1} for(item in a) {print item;print a[item]}}’

awk 定义一个关联数组,并输出 关联数组的 key 值 和 value; key值可以通过for( item in a )来获取, value 通过 a[item]来获取;
awk ‘BEGIN{ {a[“你好”]=1;a[“helloworld”] = 3} {print length(a)}}’
获取数组长度的函数  length() ; 

2、读取awk数组中的数据的值

awk  ‘BEGIN{
{a[1] =”x”;a[2]=”b”;a[3]=”c”}  for(item in a){printf(“%d is %s\n”,item,a[item])}}’
ans:
1 is x2 is b3 is c使用 for( item in array) 遍历,  这种遍历获取到的数据时随机的。

awk  ‘BEGIN{
{a[1] =”x”;a[2]=”b”;a[3]=”c”}  for( i = 0;i<length(a);i++){printf(“%d is %s\n”,i,a[i])}}’
ans:
0 is 1 is x2 is b3 is c使用 for(i; i< len ; i++) 遍历

3、多维数组, array[index1,index2….]  SUBSEP是数组的下标分隔符,默认为 “\034″。可以事先设定 SUBSEP,也可以在SUBSEP的位置输入分隔符

awk  ‘BEGIN{ {SUBSEP=”|”;a[“x”,”y”]=”hello world”;} for(item in a){print item ;print a[item]}}’
ans:
x|yhello world上述是通过SUBSEP设置分隔符,也可以直接在分隔符位置输入分隔符。

[root@SJSWT46-145 awkFile]# awk  ‘BEGIN{ {a[“x””,””y”]=”hello world”;} for(item
ans:
x,yhello world
4、删除数组或者删除数组的元素

awk  ‘BEGIN{ {a[“x””,””y”]=”hello world”;} for(item in a){print item ;print a[item]} {print “—-delete array—“}{delete a} for(item in a){print item} }’
ans:
x,yhello world—-delete array—
删除数组中的某一个元素:
 awk  ‘BEGIN{
{a[1] =”x”;a[2]=”b”;a[3]=”c”}  for( i = 0;i<length(a);i++){printf(“%d is %s\n”,i,a[i])} {print “*** del ***”} {delete a[2]} for( i = 0;i<length(a);i++){printf(“%d is %s\n”,i,a[i])}}’
ans:

0 is 1 is x2 is b3 is c*** del ***0 is 1 is x2 is 3 is c
5、数组的排序, awk提供asort函数实现对数组的值进行排序,注意:排序之后数组的下标改将从1开始 ; 更高的版本提供 关联数组下标的排序。

 awk  ‘BEGIN{
{a[0] = “z” ;a[1] =”x”;a[2]=”b”;a[3]=”c”}  for( i = 0;i<length(a);i++){printf(“%d is %s\n”,i,a[i])} {asort(a)} {print “*********”} for( i = 0;i<length(a);i++){printf(“%d is %s\n”,i,a[i])}}’
ans:
0 is z1 is x2 is b3 is c*********0 is 1 is b2 is c3 is x4 is z
————————————————
版权声明:本文为CSDN博主「eten」的原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/leo115/article/details/8720663

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161636.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月19日 下午2:16
下一篇 2022年7月19日 下午2:16


相关推荐

  • Windows server 2012 R2 ping 不是内部或外部命令

    Windows server 2012 R2 ping 不是内部或外部命令1 查询 C Windows System32 如果没有拷贝一个进去 2 如果有配置环境变量 SystemRoot system32 SystemRoot SystemRoot system32 WBEM 搞定了

    2026年3月18日
    2
  • c语言s型曲线方程,电机控制 | S曲线加减速

    c语言s型曲线方程,电机控制 | S曲线加减速S 型曲线加减速 1 S 型曲线 1 1 简介 Sigmoid 函数是一个在生物学中常见的 S 型函数 也称为 S 型生长曲线 Sigmoid 函数也叫 Logistic 函数 取值范围为 0 1 它可以将一个实数映射到 0 1 的区间 可以用来做二分类 该 S 型函数有以下优缺点 优点是平滑 而缺点则是计算量大 Sigmoid 函数由下列公式定义 Sigmoid 函数在 8 8 的计算数值以及图形如下 由以上数据与图形可

    2026年3月18日
    2
  • 批量给图片重命名_图片快速重命名编号

    批量给图片重命名_图片快速重命名编号如果你是一名摄影师,又或者你是一名图片设计的工作人员,工作中肯定会面对很多图片文件,图片多了就需要进行整理,不然就很难区分和管理,就很不利于我们的使用。为了更好的整理往往我们就需要给图片进行重命名并且排序,这就出现一个问题了,如何批量重命名这些图片并且进行编号呢?如果你还不知道如何解决这个问题,那么你就要跟随小编的步伐,我来为大家详细介绍图片批量重命名编号的方法吧!需要使用的软件:优速文件批量重命名软件下载地址:免费下载优速文件批量重命名软件https://www.yososoft.com/do

    2025年9月12日
    5
  • API之Byte类型

    API之Byte类型packagecom.wonders.week01;/***以JDK1.7为基础*(1)java.lang.Byte继承了java.lang.Number*(2)是final修饰的类*(3)构造方法:publicByte(bytevalue)*(4)构造方法:publicByte(Strings)throwsNumberFormatException里

    2022年6月18日
    31
  • Android audio_audiomack安卓版下载

    Android audio_audiomack安卓版下载音频基础知识声音有哪些重要属性呢?响度(Loudness)响度就是人类可以感知到的各种声音的大小,也就是音量。响度与声波的振幅有直接关系。音调(Pitch)音调与声音的频率有关系,当声音的频率越大时,人耳所感知到的音调就越高,否则就越低。音色(Quality)同一种乐器,使用不同的材质来制作,所表现出来的音色效果是不一样的,这是由物体本身的结构特性所决定的。

    2025年8月28日
    6
  • 数据库-PDMan使用教程

    数据库-PDMan使用教程文章目录 PDMan 简介使用下载安装创建新模块开始菜单栏设置功能数据库连接同步数据到数据库 PDMan 简介 PDMan 是一款数据库建模工具 国产开源易用 支持常用的 MySQL Oracal 等数据库 具体信息查看官网 http www pdman cn 使用下载安装下载完成后 一路安装即可 安装完成后 打开软件是如下界面 创建新模块点击下图左侧新建模块建好模块后 在数据表下 新

    2026年3月16日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号