如何使用AWK在Begin Statement中定义动态数组

Am1*_*3zA 12 awk

我想在我的BEGIN语句中定义一个带有未定义索引号的数组; 我怎么能在AWK中做到这一点?

BEGIN {send_packets_0to1 = 0;rcvd_packets_0to1=0;seqno=0;count=0; n_to_n_delay[];}; 
Run Code Online (Sandbox Code Playgroud)

我有n_to_n_delay []的问题.

Pau*_*ce. 20

info gawk 部分地说:

'awk'中的数组表面上类似于其他编程语言中的数组,但存在根本差异.在'awk'中,没有必要在开始使用之前指定数组的大小.另外,'awk'中的任何数字或字符串,不仅仅是连续的整数,都可以用作数组索引.

在大多数其他语言中,数组必须在使用前"声明",包括它们包含多少元素或组件的规范.在这些语言中,声明会导致为许多元素分配连续的内存块.通常,数组中的索引必须是正整数.

但是,如果要将变量"声明"为数组,以便稍后在标量产生错误时错误地引用该变量,则可以在BEGIN子句中包含此变量:

split("", n_to_n_delay)
Run Code Online (Sandbox Code Playgroud)

这将创建一个空数组.

这也可以用于清空现有数组.虽然gawk有能力使用delete它,但其他版本的AWK却没有.