在awk中遍历数组

简介: 在awk中遍历数组

在awk中遍历数组主要有两种方式:

  1. 关联数组遍历
    Awk中的数组默认为关联数组(也称为哈希表),可以使用任意字符串或数字作为索引。要遍历关联数组,可以使用for (key in array)结构:

    # 示例:遍历关联数组
    awk 'BEGIN {
        sites["runoob"] = "www.runoob.com"
        sites["google"] = "www.google.com"
    
        for (site in sites) {
            print site, "->", sites[site]
        }
    }'
    

    这将输出每个键及其对应的值。

  2. 数值数组遍历
    如果需要遍历的是按顺序编号的数值数组,理论上可以直接用类似C语言的循环语句来遍历,但是由于awk并不保证数组元素的顺序,所以通常不推荐这种方法,除非你知道数组是严格有序填充的,并且知道其范围:

    # 不常用的方法,仅适用于已知长度和连续索引的数值数组
    awk 'BEGIN {
        a[1] = "apple"
        a[2] = "banana"
        a[3] = "cherry"
    
        for (i = 1; i <= length(a); i++) {
            print i, "->", a[i]
        }
    }'
    

    实际上,即使对于数值数组,大多数情况下仍建议使用for (i in a)的方式进行遍历,尽管这可能会导致元素的顺序不确定。

总之,在实际编写Awk脚本时,通常更倾向于使用 for (key in array) 方式来遍历数组,因为它能确保遍历到数组的所有元素,无论其索引是何种类型。

目录
相关文章
|
7月前
|
Perl
在 `awk` 中,for 循环
在 `awk` 中,for 循环
616 5
|
7月前
|
Perl
awk循环处理
awk循环处理
187 8
|
7月前
|
存储 数据处理 C语言
awk复杂用法变量与数组
awk复杂用法变量与数组
55 4
|
人工智能 BI Perl
|
索引 Perl 存储
|
Perl 存储 索引
|
索引 Perl 存储