开发手册 欢迎您!
软件开发者资料库

AWK - Arrays

AWK数组 - 学习AWK编程以及如何开发环境,概述,工作流,基本语法,基本示例,内置变量,运算符,正则表达式,数组,控制流,循环,内置函数,用户定义函数,输出重定向,漂亮的印刷。

AWK有关联数组,关于它的最好的事情之一是 - 索引不需要是连续的数字集;您可以使用字符串或数字作为数组索引.此外,不需要事先声明数组的大小 - 数组可以在运行时扩展/收缩.

它的语法如下 :

语法

array_name[index] = value

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

创建数组

为了更深入地了解数组,让我们创建和访问数组元素.

示例

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

在执行此代码时,您会得到以下结果 :

输出

orangeyellow

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

删除数组元素

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

语法

delete array_name[index]

以下示例删除元素橙色.因此该命令不显示任何输出.

示例

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

多维数组

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

例如,下面给出的是3x3三维数组 :

100   200   300400   500   600700   800   900

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

语法

array["0,0"] = 100

虽然我们将 0,0 作为索引,但这些是不是两个索引.实际上,它只是一个字符串 0,0 的索引.

以下示例模拟二维数组 :

示例

[jerry]$ 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] = 100array[0,1] = 200array[0,2] = 300array[1,0] = 400array[1,1] = 500array[1,2] = 600

您还可以对数组执行各种操作,例如对元素/索引进行排序.为此,您可以使用分类 asorti 功能