首页 > 其他分享 >无涯教程-AWK - 数组(Array)

无涯教程-AWK - 数组(Array)

时间:2023-10-21 17:32:34浏览次数:37  
标签:100 无涯 print AWK 数组 fruits orange array Array

AWK具有关联数组,您可以使用字符串或数字作为数组索引。

array_name[index]=value

其中 array_name 是数组的名称, index 是数组的索引,而 value 是分配给数组元素的任何值。

创建数组

为了获得更多关于数组的见解,让我们创建和访问数组的元素。

[Learnfk]$awk 'BEGIN {
   fruits["mango"]="yellow";
   fruits["orange"]="orange"
   print fruits["orange"] "\n" fruits["mango"]
}'

在执行此代码时,您将获得以下输出-

orange
yellow

在上面的示例中,我们将数组声明为 fruits ,其索引是水果名称,值是水果的颜色,要访问数组元素,我们使用 array_name[index]格式。

删除元素

对于插入,我们使用了赋值运算符。同样,我们可以使用 delete 语句从数组中删除一个元素。 delete语句的语法如下-

delete array_name[index]

下面的示例删除元素 orange 。因此,该命令不显示任何输出。

[Learnfk]$awk 'BEGIN {
   fruits["mango"]="yellow";
   fruits["orange"]="orange";
   delete fruits["orange"];
   print fruits["orange"]
}'

多维数组

AWK仅支持一维数组。但是您可以使用一维数组本身轻松地模拟多维数组。

如,下面给出的是一个3x3三维数组-

100   200   300
400   500   600
700   800   900

在上面的示例中,array [0] [0]存储100,array [0] [1]存储200,依此类推。要将100存储在数组位置[0] [0]中,我们可以使用以下语法-

array["0,0"]=100

尽管我们给出了 0,0 作为索引,但它们不是两个索引。实际上,它只是一个字符串 0,0 的索引。

以下示例模拟了二维数组-

[Learnfk]$awk 'BEGIN {
   array["0,0"]=100;
   array["0,1"]=200;
   array["0,2"]=300;
   array["1,0"]=400;
   array["1,1"]=500;
   array["1,2"]=600;

   # print array elements
   print "array[0,0]=" array["0,0"];
   print "array[0,1]=" array["0,1"];
   print "array[0,2]=" array["0,2"];
   print "array[1,0]=" array["1,0"];
   print "array[1,1]=" array["1,1"];
   print "array[1,2]=" array["1,2"];
}'

在执行此代码时,您将获得以下输出-

array[0,0]=100
array[0,1]=200
array[0,2]=300
array[1,0]=400
array[1,1]=500
array[1,2]=600

您还可以对数组执行各种操作,如对数组的元素/索引进行排序。为此,您可以使用 assort 和 asorti 函数

参考链接

https://www.learnfk.com/awk/awk-arrays.html

标签:100,无涯,print,AWK,数组,fruits,orange,array,Array
From: https://blog.51cto.com/u_14033984/7968678

相关文章

  • 无涯教程-AWK - 运算符
    像其他编程语言一样,AWK也提供了大量的运算符。本章通过适当的示例说明AWK运算符。S.No.Operators&描述1ArithmeticOperatorsAWK支持以下算术运算符。2IncrementandDecrementOperatorsAWK支持以下递增和递减运算符。3AssignmentOperatorsAWK支持以下赋值运算......
  • 无涯教程-AWK - 基本语法
    AWK易于使用,我们可以直接从命令行提供AWK命令,也可以以包含AWK命令的文本文件的形式提供AWK命令。AWK命令行我们可以在命令行的单引号内指定AWK命令,如下所示-awk[options]file...考虑具有以下内容的文本文件marks.txt-1)LearnfkPhysics802)ToolfkMaths......
  • 无涯教程-AWK - 环境设置
    本章介绍如何在GNU/Linux系统上设置AWK环境。软件包安装通常,大多数GNU/Linux发行版默认都提供AWK,如果您没有AWK,请使用高级软件包工具(APT)软件包管理器将其安装在基于Debian的GNU/Linux[jeryy]$sudoapt-getupdate[jeryy]$sudoapt-getinstallgawk同样,要在基于RPM的GNU/L......
  • 无涯教程-AWK - 简介
    AWK是一种优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。AWK提供了极其强大的功能:可以进行正则表......
  • 无涯教程-Arduino - Multi-Dimensional Arrays函数
    具有二维的数组(即下标)通常表示由以行和列排列的信息组成的值表。intb[2][2]={{1,2},{3,4}};这些值按大括号按行分组,因此,1和2分别初始化b[0][0]和b[0][1],而3和4分别初始化b[1][0]和b[1][1],如果给定行的初始化程序不足,则将该行的其余元素初始化为0。因此......
  • disp函数/fprintf函数/arrayfun函数
    disp命令只能打印多个变量的值打印多个变量时,可以把它们放在一个数组中或结构体中fprintf命令打印多个变量fpritf(fileID,formatSpec,A1,A2,A3...)arrayfun(func,A)将func应用于A的每个元素functiony=f(x)...endx=-2:1:2;y=arrayfun(@f,x);plot(x,y)......
  • 无涯教程-Arduino - micros()函数
    micros()函数返回从Arduino开发板开始运行当前程序起的毫秒数,该数字溢出,即大约70分钟后恢复为零。micros-语法micros();此函数返回自程序启动以来的微秒数(无符号长)micros-示例unsignedlongtime;voidsetup(){Serial.begin(9600);}voidloop(){......
  • 无涯教程-Arduino - delayMicroseconds()函数
    delayMicroseconds()函数接受一个整数(或数字)参数,该数字表示时间,以微秒为单位,一毫秒有一千微秒,一秒有一百万微秒。当前,可以产生准确延迟的最大值是16383,这可能会在将来的Arduino版本中改变,对于超过几千微秒的延迟,应改为使用delay()函数。delayMicroseconds-语法delayMicr......
  • 无涯教程-Arduino - for语句函数
    for循环执行语句预定次数。forloop-语法for(initialize;control;incrementordecrement){//语句块}forloop-示例for(counter=2;counter<=9;counter++){//statements块将执行10次}forloop-执行序列参考链接https://www.learnfk.com/arduin......
  • 无涯教程-Arduino - while语句函数
    while循环将连续且无限地循环,直到括号()中的表达式变为false为止,必须更改测试变量,否则while循环将永远不会退出。whileloop-while-语法while(expression){Blockofstatements;}whileloop-while-执行序列参考链接https://www.learnfk.com/arduino/arduino-w......