Sözdizimi
delete array
POSIX'teki mevcut sürümlerde değil, ancak neredeyse tüm mevcut uygulamalar tarafından desteklenmektedir (orijinal awk, GNU, mawk ve BusyBox dahil). POSIX'in gelecekteki bir sürümüne eklenecektir (bkz . Hata 0000544 ).
Hem taşınabilir hem de standart uyumlu ve bir ifade yerine bir ifade olan tüm dizi öğelerini temizlemenin alternatif bir yolu, split
mevcut tüm öğeleri silmeye güvenmektir :
split("", array, ":")
Bunların tümü de dahil olmak üzere delete array
, değişkenin orijinal awk, GNU awk ve mawk (ancak BusyBox awk içinde değil) içinde bir dizi değişkeni olarak işaretlenmiş bırakın. Bildiğim kadarıyla, bir değişken bir dizi olarak kullanıldığında, onu skaler değişken olarak kullanmanın bir yolu yoktur.
delete array
, sözdizimi hatasını çağırdığında , man sayfasının altyazının isteğe bağlı olduğunu söylediğini bulmak sürpriz oldu . Bir hata olarak gösterilmese de, aynı zamanda işe yaramadığını ve birçok varyantın eşit derecede etkisiz$ 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 ... >>
olduğunu bulmak daha şaşırtıcıydı .delete array[subscript]
array[subscript] = ""