iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >怎么在linux中对awk数组进行操作
  • 919
分享到

怎么在linux中对awk数组进行操作

2023-06-13 03:06:53 919人浏览 薄情痞子
摘要

本篇文章为大家展示了怎么在linux中对awk数组进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、定义方法可以用数值作数组索引(下标)Tarray[1]=“cheng mo”Tarray[

本篇文章为大家展示了怎么在linux中对awk数组进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、定义方法

可以用数值作数组索引(下标)

Tarray[1]=“cheng mo”
Tarray[2]=“800927”

可以用字符串作数组索引(下标)

Tarray[“first”]=“cheng ”
Tarray[“last”]=”mo”
Tarray[“birth”]=”800927”

使用中 print Tarray[1] 将得到”cheng mo” 而 print Tarray[2] 和 print[“birth”] 都将得到 ”800927” 。

二、数组相关函数

代码如下:


[chengmo@localhost ~]$ awk --version
GNU Awk 3.1.5 </p><p>使用版本是:3.1以上,不同版本下面函数不一定相同

得到数组长度(length方法使用)

代码如下:


[chengmo@localhost ~]$ awk 'BEGIN{info="it is a test";lens=split(info,tA," ");print length(tA),lens;}'
4 4
length返回字符串以及数组长度,split进行分割字符串为数组,也会返回分割得到数组长度。 </p><p>(asort使用):
[chengmo@localhost ~]$ awk 'BEGIN{info="it is a test";split(info,tA," ");print asort(tA);}'
4
asort对数组进行排序,返回数组长度。

输出数组内容(无序,有序输出):

代码如下:


[chengmo@localhost ~]$ awk 'BEGIN{info="it is a test";split(info,tA," ");for(k in tA){print k,tA[k];}}'
4 test
1 it
2 is
3 a

for&hellip;in 输出,因为数组是关联数组,默认是无序的。所以通过for&hellip;in 得到是无序的数组。如果需要得到有序数组,需要通过下标获得。

[chengmo@localhost ~]$ awk 'BEGIN{info="it is a test";tlen=split(info,tA," ");for(k=1;k<=tlen;k++){print k,tA[k];}}'
1 it
2 is
3 a
4 test
注意:数组下标是从1开始,与c数组不一样。

判断键值存在以及删除键值:

代码如下:


一个错误的判断方法:
[chengmo@localhost ~]$ awk 'BEGIN{tB["a"]="a1";tB["b"]="b1";if(tB["c"]!="1"){print "no found";};for(k in tB){print k,tB[k];}}'
no found
a a1
b b1
c

以上出现奇怪问题,tB[“c”]没有定义,但是循环时候,发现已经存在该键值,它的值为空,这里需要注意,awk数组是关联数组,只要通过数组引用它的key,就会自动创建改序列.

正确判断方法:
[chengmo@localhost ~]$ awk 'BEGIN{tB["a"]="a1";tB["b"]="b1";if( "c" in tB){print "ok";};for(k in tB){print k,tB[k];}}'  
a a1
b b1
if(key in array) 通过这种方法判断数组中是否包含”key”键值。

删除键值:
[chengmo@localhost ~]$ awk 'BEGIN{tB["a"]="a1";tB["b"]="b1";delete tB["a"];for(k in tB){print k,tB[k];}}'                    
b b1

delete array[key]可以删除,对应数组key的,序列值。</p><p>

三、二维数组使用(多维数组使用)

代码如下:


awk的多维数组在本质上是一维数组,更确切一点,awk在存储上并不支持多维数组。awk提供了逻辑上模拟二维数组的访问方式。例 如,array[2,4] = 1这样的访问是允许的。awk使用一个特殊的字符串SUBSEP (\034)作为分割字段,在上面的例子中,关联数组array存储的键值实际上是2\0344。</p><p>类似一维数组的成员测试,多维数组可以使用 if ( (i,j) in array)这样的语法,但是下标必须放置在圆括号中。
类似一维数组的循环访问,多维数组使用 for ( item in array )这样的语法遍历数组。与一维数组不同的是,多维数组必须使用split()函数来访问单独的下标分量。split ( item, subscr, SUBSEP) </p><p>[chengmo@localhost ~]$ awk 'BEGIN{ </p><p>for(i=1;i<=9;i++)
{
 for(j=1;j<=9;j++)  
 {
tarr[i,j]=i*j;
print i,"*",j,"=",tarr[i,j];
 }
}
}'
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6 </p><p>&hellip;&hellip; </p><p>可以通过array[k,k2]引用获得数组内容. </p><p>方法二: </p><p>[chengmo@localhost ~]$ awk 'BEGIN{
for(i=1;i<=9;i++)
{
 for(j=1;j<=9;j++)  
 {
tarr[i,j]=i*j;
 }
}
for(m in tarr)              
{</p><p>split(m,tarr2,SUBSEP);
print tarr2[1],"*",tarr2[2],"=",tarr[m];
}
}'

上述内容就是怎么在linux中对awk数组进行操作,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网操作系统频道。

--结束END--

本文标题: 怎么在linux中对awk数组进行操作

本文链接: https://www.lsjlt.com/news/265032.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在linux中对awk数组进行操作
    本篇文章为大家展示了怎么在linux中对awk数组进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、定义方法可以用数值作数组索引(下标)Tarray[1]=“cheng mo”Tarray[...
    99+
    2023-06-13
  • 怎么在linux中对awk数组进行排序
    怎么在linux中对awk数组进行排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:[chengmo@localhost ~]$ awk 'B...
    99+
    2023-06-13
  • 怎么在Bash中对数组进行操作
    这篇文章给大家介绍怎么在Bash中对数组进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。BASH只支持一维数组,但参数个数没有限制。如声明一个数组:declare -a array(其实不用声...
    99+
    2023-06-09
  • JavaScript中怎么对数组进行操作
    本篇文章给大家分享的是有关JavaScript中怎么对数组进行操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。js对数组对象的操作以及方法的...
    99+
    2024-04-02
  • MySQL中怎么对数组类型数据进行操作
    在MySQL中,并没有直接支持数组类型数据的操作,但可以通过其他方式来模拟数组类型数据的操作,比如使用JSON数据类型或者使用多对多...
    99+
    2024-04-30
    MySQL
  • 怎么在Linux中对shell数组进行循环
    这篇文章给大家介绍怎么在Linux中对shell数组进行循环,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。shell数组循环测试shell数组,循环的例子: arr=("a" "...
    99+
    2023-06-09
  • 怎么在Django中对View进行操作
    本篇文章给大家分享的是有关怎么在Django中对View进行操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Django的View一个视图函数(类),简称视图,是一个简单的P...
    99+
    2023-06-14
  • 如何在 Linux 中使用 Python 函数对数组进行处理和操作?
    Linux 是一个非常流行的操作系统,而 Python 是一个强大的编程语言。在 Linux 中使用 Python 函数对数组进行处理和操作,是很多开发者和数据科学家常常需要做的一件事情。 本文将介绍如何在 Linux 中使用 Python...
    99+
    2023-07-20
    函数 linux 数组
  • 如何在PHP中对数组个数进行求和操作
    如何在PHP中对数组个数进行求和操作 在PHP中,我们经常会处理数组,并且有时候需要对数组中元素个数进行求和操作。本文将介绍如何在PHP中对数组个数进行求和操作,下面将具体展示代码示例...
    99+
    2024-03-13
    数组 求和 编程php
  • 怎么在postgresql中对主键进行操作
    在postgresql中操作主键的方法:1.启动postgresql服务;2.登录postgresql数据库;3.使用数据库;4.在数据库新建表;5.执行命令命令操作主键;具体步骤如下:首先,在命令行中启动postgresql服务;net ...
    99+
    2024-04-02
  • R语言怎么对数组进行切片操作
    在R语言中,可以使用方括号[]来对数组进行切片操作。以下是一些示例: 对向量进行切片操作: # 创建一个向量 vec <-...
    99+
    2024-03-06
    R语言
  • R语言怎么对数组进行转置操作
    在R语言中,可以使用transpose()函数对数组进行转置操作。下面是一个简单的示例: # 创建一个矩阵 mat <- ma...
    99+
    2024-03-06
    R语言
  • 怎么在MongoDB中对group聚合进行操作
    这篇文章将为大家详细讲解有关怎么在MongoDB中对group聚合进行操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MongoDB 聚合MongoDB中聚合(aggregate)主要用于...
    99+
    2023-06-14
  • 怎么在JDBC中对resutset接口进行操作
    这篇文章将为大家详细讲解有关怎么在JDBC中对resutset接口进行操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. ResultSet细节1功能:...
    99+
    2024-04-02
  • ADO.NET中怎么对SqlDataAdapter进行操作
    本篇文章为大家展示了ADO.NET中怎么对SqlDataAdapter进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。ADO.NET SqlDataAdapter对象SqlDataAdapte...
    99+
    2023-06-17
  • C++中怎么对Test进行操作
    C++中怎么对Test进行操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。静态测试 C++Test内嵌了业界最出名的Effective C++(epcc)、M...
    99+
    2023-06-17
  • node.js中怎么对CQS进行操作
    本篇文章为大家展示了node.js中怎么对CQS进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  怎样使用node.js来操作CQS  安装:  $npmi...
    99+
    2024-04-02
  • JavaScript 中怎么对Cookie进行操作
    本篇文章为大家展示了JavaScript 中怎么对Cookie进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Cookie 只是存储在计算机浏览器中的小型文本...
    99+
    2024-04-02
  • C#中怎么对Word进行操作
    C#中怎么对Word进行操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。导入COM库:Microsoft word 11.0 Object Library.引用里面就增加了:...
    99+
    2023-06-17
  • C++ 中怎么对Endian进行操作
    C++ 中怎么对Endian进行操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.判断CPU的C++ Endian:union {&nb...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作