是否可以使用變量作爲真正的多維數組的索引?我有一個通過Cisco配置文件運行的GAWK 4.1.1腳本,我想創建一個數組,看起來像:gawk 4 - 使用變量作爲數組索引
myArray的[站點代碼] [交換機名稱]
如果站點代碼和交換機名稱從文件名拉正在處理,然後額外的索引超出了每個交換機的基礎上計算各種事情。對於上面的這兩個索引,我想將索引和值都設置爲相同的變量。所以,最終我能有一個數組,看起來像:
myarray[nyc01][switch01][Vlan100][192.168.100.1]
myarray[nyc01][switch01][Vlan101][192.168.101.1]
myarray[nyc01][switch02][Vlan200][192.168.200.1]
下面的代碼說明了什麼,我試圖做的:
#!/bin/bash
awk '{
var1="variable1"
var2="variable2"
array[var1]=var1
array[var1][var2]=var2
print array[var1][var2]
}'
我得到這個錯誤:
awk: cmd. line:6: (FILENAME=- FNR=1) fatal: attempt to use scalar `array["variable1"]' as an array
我排序明白爲什麼會發生。我已經聲明var1和var2是標量變量。但是有什麼我正在嘗試做的工作?
array [var1] = var1:左手si de的作業是陣列的一排(如果您有3D陣列,則爲平面),rhs是單個值。你是否試圖一次性分配整個n-1尺寸? – user1666959