Awk
在 awk 中刪除一個數組
在awk中,我可以用循環清除一個數組,使其成為一個空數組,相當於刪除它。
for (key in array) delete array[key];
有沒有更簡單的方法?我可以完全刪除一個數組,以便變數名可以重新用於標量嗎?
語法
delete array
在 POSIX 的目前版本中不存在,但幾乎所有現有實現(包括原始 awk、GNU、mawk 和 BusyBox)都支持它。它將在 POSIX 的未來版本中添加(請參閱缺陷 0000544)。
split
清除所有數組元素的另一種方法是刪除所有現有元素,這種方法既可移植又符合標準,是表達式而不是語句:split("", array)
所有這些,包括
delete array
,將變數標記為原始 awk、GNU awk 和 mawk 中的數組變數(但不在 BusyBox awk 中)。據我所知,一旦將變數用作數組,就無法將其用作標量變數。