在Awk中如何動(dòng)態(tài)創(chuàng)建數(shù)組

awk
小樊
82
2024-10-12 06:38:54

在Awk中,你可以使用內(nèi)置的數(shù)組來(lái)存儲(chǔ)和操作數(shù)據(jù)。但是,Awk本身并不直接支持動(dòng)態(tài)創(chuàng)建數(shù)組。你可以通過(guò)一些技巧來(lái)實(shí)現(xiàn)類似的功能。

以下是一個(gè)示例,展示了如何在Awk中動(dòng)態(tài)創(chuàng)建數(shù)組:

echo "a b c" | awk '{
  for (i = 1; i <= NF; i++) {
    array[i] = $i
  }
  for (i in array) {
    print array[i]
  }
}'

在這個(gè)示例中,我們首先使用for循環(huán)遍歷輸入的每一行,并將每個(gè)字段存儲(chǔ)到數(shù)組中。然后,我們使用另一個(gè)for循環(huán)遍歷數(shù)組并打印其內(nèi)容。

需要注意的是,Awk中的數(shù)組是關(guān)聯(lián)數(shù)組,鍵是字符串,值可以是任何類型的數(shù)據(jù)。在這個(gè)示例中,我們將數(shù)組的鍵設(shè)置為數(shù)組的索引(從1開(kāi)始),將值設(shè)置為對(duì)應(yīng)的字段。

如果你需要?jiǎng)?chuàng)建一個(gè)具有動(dòng)態(tài)大小的數(shù)組,你可以考慮使用其他工具,如Perl或Python,它們提供了更豐富的數(shù)組和列表操作功能。

0