天天看點

awk關聯數組的下标

使用變量作為數組索引請參見範例

範例

$  cat employees

Tom   Jones  4424  5 / 12 / 66  543354

Mary  Adams  5346  11 / 4 / 63  28765

Sally Chang  1654  7 / 22 / 54  650000

Billy Black  1683  9 / 23 / 44  336500 $ awk  '{name[x++]=$2}END{for(i=0; i<NR; i++){print i,name[i]}}' employees

0 Jones 

1 Adams 

2 Chang 

3 Black

說明:數組name的下标是使用者自定義的變量x。運算符++表明這是一個數值型的變量。awk将x初始化為0,并且每次使用x後将其加1(所用的是後遞增運算符)。每條記錄的第2個字段都将指派給數組name中的相應元素。END塊使用for循環來循環處理數組,将從下标0開始,依次列印數組元素的值。下标隻是一個鍵,是以不必從0開始。下标可以從任意值開始,數字或字元串都可以。

範例:

$ awk '{id[NR]=$3}END{for(x=1; x<=NR; x++){print id[x]}}' employees

4424

5346

1654

1683

說明:awk變量NR儲存目前記錄的記錄号。本例用NR作為下标,把每條記錄的第3個字段指派給數組中的相應元素。最後,for循環對數組進行循環處理,列印出儲存在數組中的值。

參考資料:http://www.linuxawk.com/jiaocheng/252.html