A sintaxe
delete array
não está nas versões atuais no POSIX, mas é suportado virtualmente por todas as implementações existentes (incluindo o original awk, GNU, mawk e BusyBox). Ele será adicionado em uma versão futura do POSIX (veja defeito 0000544 ).
Uma maneira alternativa de limpar todos os elementos da matriz, que é compatível com o padrão e portátil, e que é uma expressão em vez de uma declaração, é confiar em split
da exclusão de todos os elementos existentes:
split("", array, ":")
Todos estes, incluindo delete array
, deixam a variável marcada como sendo uma variável array no awk original, no GNU awk e no mawk (mas não no BusyBox awk). Tanto quanto eu sei, uma vez que uma variável tenha sido usada como uma matriz, não há como usá-la como uma variável escalar.