awk关联数组的下标

使用变量作为数组索引请参见范例

范例

$ cat employees

Tom   Jones 4424 5/12/66 543354

Mary  Adams 5346 11/4/63 28765

Sally Chang 1654 7/22/54 650000

Billy Black 1683 9/23/44 336500

$ awk ‘{name[x++]=$2}END{for(i=0; i<NR; i++){print i,name[i]}}‘ employees

0 Jones

1 Adams

2 Chang

3 Black

说明:数组name的下标是用户自定义的变量x。运算符++表明这是一个数值型的变量。awk将x初始化为0,并且每次使用x后将其加1(所用的是后递增运算符)。每条记录的第2个字段都将赋值给数组name中的相应元素。END块使用for循环来循环处理数组,将从下标0开始,依次打印数组元素的值。下标只是一个键,所以不必从0开始。下标可以从任意值开始,数字或字符串都可以。

范例:

$ awk‘{id[NR]=$3}END{for(x=1; x<=NR; x++){print id[x]}}‘ employees

4424

5346

1654

1683

说明:awk变量NR保存当前记录的记录号。本例用NR作为下标,把每条记录的第3个字段赋值给数组中的相应元素。最后,for循环对数组进行循环处理,打印出保存在数组中的值。

参考资料:http://www.linuxawk.com/jiaocheng/252.html

时间: 2024-12-28 11:10:55

awk关联数组的下标的相关文章

shell 之awk 关联数组高级应用

最近由于数据迁移过,有些用户信息需要再次确认下,也许数据量比较大,但是需要最终确认的比如说是用户ID和其对应的用户积分数,这样就会导致出现文本a(老的数据),文本b(新的数据).比如 1101 123 1102 111 1103 145 1104 152 这是文本a.txt 文本b.txt如下 1101 123 1102 112 1103 154 1104 152 列举的文本例子只是为了说明使用方法列举的最简单的文本,实际数据可能要复杂的多,可能会出现b.txt 中出现的ID在a.txt中没有出

shell 脚本-关联数组

shell 的关联数组 Shell Associative Array   bashi没有原生的对于类似hash table的支持,不像perl或python.下标数组元素是通过数组下标(数组下标可以是算术表达式,其结果必须是一个整数)来访问的,但是这种访问方式在表达某些关联性很强的数据时会存在限制.shell 提供了另外一种数组,其可以使用任意的字符串作为下标(不必是整数)来访问数组元素.这种数组叫做关联数组(associative array).关联数组的下标和值称为键值对,它们是一一对应的

perl5 第九章 关联数组/哈希表

第九章 关联数组/哈希表 by flamephoenix 一.数组变量的限制二.定义三.访问关联数组的元素四.增加元素五.创建关联数组六.从数组变量复制到关联数组七.元素的增删八.列出数组的索引和值九.用关联数组循环十.用关联数组创建数据结构  1.(单)链表  2.结构  3.树 一.数组变量的限制    在前面讲的数组变量中,可以通过下标访问其中的元素.例如,下列语句访问数组@array的第三个元素:    $scalar = $array[2];    虽然数组很有用,但它们有一个显著缺陷

awk操作数组注意几点

awk的数组跟其他程序设计语言的数组有所不同:1.不需要正式定义,一个数组在使用时被定义:2.数组元素的初始值为0或空字符串,除非他们被显示的指定初始化:3.数组可以自动扩展:4.下标可以使字符串. split函数的返回值是数组长度.awk中数组的下标是从1开始的. $ echo ""|awk 'BEGIN{a="here is test";len=split(a,arr," ")}{print len, arr[1]}' 3 here 求数组长

shell关联数组

Shell Associative Array    bashi没有原生的对于类似hash table的支持,不像perl或python.下标数组元素是通过数组下标(数组下标可以是算术表达式,其结果必须是一个整数)来访问的,但是这种访问方式在表达某些关联性很强的数据时会存在限制.shell 提供了另外一种数组,其可以使用任意的字符串作为下标(不必是整数)来访问数组元素.这种数组叫做关联数组(associative array).关联数组的下标和值称为键值对,它们是一一对应的关系.在关联数组中,键

shell 常规数组&关联数组

在日常编写shell的过程中,数组是一个非常常用到的内容.我们这里简要介绍两种数组的使用方式.一种常规数组,一个中关联数组.差异就是常规数组,只能用整数作为下标来进行数据的存取.而关联数组能够使用字符作为小标来进行存储. 常规数组 1)  初始化 数组中的多个变量用括号来括起来,变量间用空格来间隔开来. [email protected]:~/test_shell#./demo1.sh 1 2 3 4 5 1 2 3 4 [email protected]:~/test_shell# mored

bash数组和关联数组

1.1.1 数组 数组就是变量阵列,多个变量组合到一块,通过同一个名字进行存取操作.数值是连续的多个独立的内存空间(元素),每个内存空间相当于一个变量.数组元素通过"数组名[索引]"进行引用.索引也称为下标,从0而不是1开始编号. 声明数组:declare -a Array_Name bash的数组支持稀疏格式,所谓的稀疏格式就是,一个数组中的只有两个元素,但这两个元素可以是第一个和第九个,中间的都为空. 1.1.1.1 数组元素赋值 (1) 一次只赋值一个元素 a_name[inde

js 中关联数组

以前都不知道这种写法叫做关联数组. 何为关联数组呢.通常的数组在填充时会隐式或者显示指定数组下标,但JS中数组可以以名字的形式为元素赋值,这就形成了关联数组. 例子 var p={ name:'dai', age:'19', say:function(){ alert('说话'); } } //访问对象的方法,有两种, p.say();//json 点读取法 p['say']();//关联数组法.一定要记住,中括号里面要有引号[''];

JS 索引数组、关联数组和静态数组、动态数组

1 JS 索引数组.关联数组和静态数组.动态数组 2 3 数组分类: 4 5 1.从数组的下标分为索引数组.关联数组 6 7 var ary1 = [1,3,5,8]; 8 //按索引去取数组元素,从0开始(当然某些语言实现从1开始) 9 //索引实际上就是序数,一个整型数字 10 alert(ary1[0]); 11 alert(ary1[1]); 12 alert(ary1[2]); 13 alert(ary1[3]); 14 15 16 var ary2 = {}; 17 //存取时,以非