No awk, posso limpar uma matriz com um loop, tornando-a vazia, o que equivale a excluí-la.
for (key in array) delete array[key];
Existe uma maneira mais simples? Posso excluir completamente uma matriz, para que o nome da variável possa ser reutilizado para um escalar?
delete array
um erro de sintaxe, embora a página de manual diga que o subscrito é opcional.$ awk 'BEGIN { A[1] = 0; delete A; }' awk: Syntax error at line 1 of program << BEGIN { A[1] = 0; de ... >> context is BEGIN { A[1] = 0; delete >>> A; <<< awk: illegal statement at line 1 of program << BEGIN { A[1] = 0; de ... >>
Foi mais surpreendente descobrir quedelete array[subscript]
, embora não tenha sido mostrado como um erro, também não funcionou, e muitas variantesarray[subscript] = ""
foram todas igualmente ineficazes.split("", array)