Arrays Summary (The GNU Awk User’s Guide)
From Get docs
Gawk/docs/latest/Arrays-Summary
Previous: Arrays of Arrays, Up: Arrays [Contents][Index]
8.7 Summary
- Standard
awkprovides one-dimensional associative arrays (arrays indexed by string values). All arrays are associative; numeric indices are converted automatically to strings. - Array elements are referenced as
array[indx]. Referencing an element creates it if it did not exist previously. - The proper way to see if an array has an element with a given index is to use the
inoperator: ‘indx in array’. - Use ‘
for (indx in array) …’ to scan through all the individual elements of an array. In the body of the loop,indxtakes on the value of each element’s index in turn. - The order in which a ‘
for (indx in array)’ loop traverses an array is undefined in POSIXawkand varies among implementations.gawklets you control the order by assigning special predefined values toPROCINFO["sorted_in"]. - Use ‘
delete array[indx]’ to delete an individual element. To delete all of the elements in an array, use ‘delete array’. This latter feature has been a common extension for many years and is now standard, but may not be supported by all commercial versions ofawk. - Standard
awksimulates multidimensional arrays by separating subscript values with commas. The values are concatenated into a single string, separated by the value ofSUBSEP. The fact that such a subscript was created in this way is not retained; thus, changingSUBSEPmay have unexpected consequences. You can use ‘(sub1, sub2, …) in array’ to see if such a multidimensional subscript exists inarray. gawkprovides true arrays of arrays. You use a separate set of square brackets for each dimension in such an array:data[row][col], for example. Array elements may thus be either scalar values (number or string) or other arrays.- Use the
isarray()built-in function to determine if an array element is itself a subarray.
Previous: Arrays of Arrays, Up: Arrays [Contents][Index]