awk 陣列排序 asort 與 asorti

2021-06-26 06:40:03 字數 1055 閱讀 4893

兩者排序區別:

asort 是對陣列的值進行排序,並且會丟掉原先鍵值;

asorti是對陣列的下標進行排序。

資料檔案:

12 34

78 90

23 45

1. awk是關聯陣列。for…in迴圈輸出時候,預設列印出來是無序陣列。

[root@zhenjiang ~]# awk 'end' test 

78 90

12 34

23 45

2. asort排序輸出

[root@zhenjiang ~]# awk 'end' test  1

34 2

45 3

90

在最後執行命令,end中 asort對陣列a的值進行排序,把排序後的下標存入新生成的陣列b中,

丟棄陣列a下標值,再把陣列a的長度賦值給變數slen。

b[1]=34

b[2]=45

b[3]=90

此時a已經是空陣列。

陣列的值是無法直接print(輸出)的

,使用for迴圈取出數值的下標,輸出排序後的陣列b下標值及對應數值

3. asorti 排序輸出

[root@zhenjiang ~]# awk 'end' test  1

1234 2

2345 3

7890

在最後執行命令,end中 asorti對陣列a的下標進行排序,並把排序後的下標存入新生成的陣列b中,並把陣列a的長度賦值給變數l。

b[1]=12

b[2]=23

b[3]=78

陣列的值是無法直接print(輸出)的

,使用for迴圈取出數值的下標,輸出排序後的陣列b下標值及對應數值,再把陣列b的值當作陣列a的下標值列印陣列a的值。

**:乙個統計檔案大小並排序的指令碼:

ls -l |  gawk ' }  end '

1040 test_uuid.py

241 test_fun.pyc

43 test_os.py

58 test_fun.py

022 PHP陣列排序asort

構造乙個陣列變數 users array bob yobert steve btephen jon aonathon 迴圈輸出 reset 函式將內部指標指向陣列中的第乙個元素,並輸出。current 返回陣列中的當前元素的值,而 key 函式返回的是元素的鍵名。end 將內部指標指向陣列中的最後乙...

php通過asort 給關聯陣列按照值排序的方法

php通過asort 給關聯陣列按照值排序,和sort的區別是,sort為陣列中的單元賦予新的鍵名。原有的鍵名將被刪除。nums array 程式設計客棧 o 5,two 2,three 1 asort nums foreach nums as key val www.cppcns.com 本文標題...

sort與asort與ksort區別

sort只依據值從小到大排序,鍵值不參與排序 asort依據值排序,鍵值參與排序 ksort依據鍵值排序,值參與排序 sort只依據值從小到大排序,鍵值不參與排序。例 arr array a d d c b a sort arr var dump arr 結果array 3 asort依據值進行排序...