天天看点

awk关联数组和顺序数组

[root@159 shell]# cat fl

ID   Name      Age   City   Country    Tel             Salary  Children

1001 Steven    25    NY     U.S.A      +01-02-323222   $4900   2

1002 Huang-Yu  30    BJ     CHN        +86-10-36789966 ¥6000  1

1003 Fish-Mad  27    SG     SG         +65-67456632    $3000   3

1004 Vale-Kiss 46    LD     ENG        +44-20-87634321 $6280   3

用awk实现从第二行开始打印每一行的第一列和第二列的功能。

[root@159 shell]# awk '{a[$1]=$2}END{for(i in a)print a[i]}' fl

Huang-Yu

Fish-Mad

Vale-Kiss

Name

Steven

数组a是关联数组,a关联到第一列,并将第二列的值赋给a。

这样没有按照原来的$2顺序输出。

[root@159 shell]# awk '{a[i]=$1;b[$1]=$2;i++}END{for(x=1;x<i;x++)print a[x],b[a[x]]}' fl               

1001 Steven

1002 Huang-Yu

1003 Fish-Mad

1004 Vale-Kiss

注:i从0开始取值,而x从1开始。a为顺序数组,b为关联数组。

继续阅读