- AWK 教程
- AWK - 首頁
- AWK - 概述
- AWK - 環境
- AWK - 工作流程
- AWK - 基本語法
- AWK - 基本示例
- AWK - 內建變數
- AWK - 運算子
- AWK - 正則表示式
- AWK - 陣列
- AWK - 控制流
- AWK - 迴圈
- AWK - 內建函式
- AWK - 使用者自定義函式
- AWK - 輸出重定向
- AWK - 美化輸出
- AWK 有用資源
- AWK - 快速指南
- AWK - 有用資源
- AWK - 討論
AWK - 陣列
AWK 具有關聯陣列,它的一大優點是——索引不需要是連續的數字集;您可以使用字串或數字作為陣列索引。此外,無需預先宣告陣列的大小——陣列可以在執行時擴充套件/收縮。
其語法如下:
語法
array_name[index] = value
其中array_name是陣列的名稱,index是陣列索引,value是分配給陣列元素的任何值。
建立陣列
為了更深入地瞭解陣列,讓我們建立並訪問陣列的元素。
示例
[jerry]$ awk 'BEGIN {
fruits["mango"] = "yellow";
fruits["orange"] = "orange"
print fruits["orange"] "\n" fruits["mango"]
}'
執行此程式碼後,您將得到以下結果:
輸出
orange yellow
在上面的例子中,我們將陣列宣告為fruits,其索引是水果名稱,值是水果的顏色。要訪問陣列元素,我們使用array_name[index]格式。
刪除陣列元素
對於插入,我們使用了賦值運算子。類似地,我們可以使用delete語句從陣列中刪除元素。delete語句的語法如下:
語法
delete array_name[index]
以下示例刪除元素orange。因此,該命令不顯示任何輸出。
示例
[jerry]$ awk 'BEGIN {
fruits["mango"] = "yellow";
fruits["orange"] = "orange";
delete fruits["orange"];
print fruits["orange"]
}'
多維陣列
AWK 只支援一維陣列。但是您可以輕鬆地使用一維陣列模擬多維陣列。
例如,下面是一個 3x3 的二維陣列:
100 200 300 400 500 600 700 800 900
在上面的示例中,array[0][0] 儲存 100,array[0][1] 儲存 200,依此類推。要在 array 位置 [0][0] 儲存 100,我們可以使用以下語法:
語法
array["0,0"] = 100
儘管我們使用0,0作為索引,但這並不是兩個索引。實際上,它只是一個帶有字串0,0的索引。
以下示例模擬了一個二維陣列:
示例
[jerry]$ awk 'BEGIN {
array["0,0"] = 100;
array["0,1"] = 200;
array["0,2"] = 300;
array["1,0"] = 400;
array["1,1"] = 500;
array["1,2"] = 600;
# print array elements
print "array[0,0] = " array["0,0"];
print "array[0,1] = " array["0,1"];
print "array[0,2] = " array["0,2"];
print "array[1,0] = " array["1,0"];
print "array[1,1] = " array["1,1"];
print "array[1,2] = " array["1,2"];
}'
執行此程式碼後,您將得到以下結果:
輸出
array[0,0] = 100 array[0,1] = 200 array[0,2] = 300 array[1,0] = 400 array[1,1] = 500 array[1,2] = 600
您還可以對陣列執行各種操作,例如對其元素/索引進行排序。為此,您可以使用asort和asorti函式。
廣告