В awk я могу очистить массив с помощью цикла, сделав его пустым, что эквивалентно его удалению.
for (key in array) delete array[key];
Есть ли более простой способ? Можно ли полностью удалить массив, чтобы имя переменной можно было повторно использовать для скаляра?
delete array
синтаксическую ошибку, хотя на странице руководства написано, что индекс не является обязательным.$ 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 ... >>
Более удивительно было обнаружить, чтоdelete array[subscript]
, хотя это и не показано как ошибка, оно также не работает, и многие варианты вarray[subscript] = ""
равной степени неэффективны.split("", array)