Linux awk 数组和循环

2014-11-24 08:47:14 来源: 作者: 浏览: 0

awk 作为强大的文本处理工具,少不了数组处理。


awk 中数组叫做关联数组(associative arrays),下标可以是数字也可以是字符串。awk 中的数组不必提前声明,也不必声明大小,初始化数组元素用 0 或空串,这根据上下文而定。


一 语法


语法: awk '{pattern + action}' 或 awk 'pattern {action}'


其中 pattern 表示 AWK 在数据中查找的内容, action 是在找到匹配内容时所执行的一系列命令。花括号 {} 不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组(作用域)。


二 数组定义


1 一维数组


a) 数字下标


array[1]="it"
array[2]="homer"
array[3]="sunboy"
array[4]=2050


b) 字符下标


array["first"]="yang"
array["second"]="gang"
array["third"]="sunboy"


示例 1:


#!/bin/bash


awk 'BEGIN{
array[1]="it"
array[2]="homer"
array[3]="sunboy"
array[4]=2050



array["first"]="yang"
array["second"]="gang"
array["third"]="sunboy"



print array[1], array[4]
print array[3], array["third"]}'


结果:


it 2050
sunboy sunboy


示例 2:


#!/bin/bash


awk 'BEGIN{
for(i=1; i<=5; i++){
array[i] = i*2 - 1;
}


for(i in array){
print i" = " array[i];
}
}'


结果:


4 = 7
5 = 9
1 = 1
2 = 3
3 = 5
注: for in 输出数组元素顺序是不定的,下面介绍对数组如何排序


-->

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: