为什么使用awk的数组输出不正确?

时间:2015-12-19 20:23:24

标签: arrays awk

我在文件中有一个字符串:Gatto piu bello anche cane。我使用awk分割它并将其放入数组。但输出的顺序不正确。 我的代码是:

while (getline < "'"$INPUTFILE"'") {
        text = $0;
}
split (text,text_arr," ");
for (i in text_arr) {
    print text_arr[i];
}

$INPUTFILE是包含该字符串的文件。

但是这段代码的输出是:

anche
cane
Gatto
piu
bello

我不知道这是什么问题。

1 个答案:

答案 0 :(得分:7)

awk实际上没有索引数组;它只有关联数组。这意味着您无法以保证的顺序迭代密钥。但是,split确实承诺它填充的数组将使用数字1到n作为键。这意味着您可以迭代正确的数值范围,并使用它们来索引数组。

for (i=1; i<=length(text_arr); i++) {
    print text_arr[i];
}