[cailu@cobbler-test ~]$ awk '{a[$1]=$5}END{for(i in a)print i,a[i]}' urfile
sshd 10:06
was 09:04
root 10:06
[cailu@cobbler-test ~]$ cat urfile
root 557 2532 0 09:04 ? 00:00:00 sshd: was [priv]
was 563 557 0 09:04 ? 00:00:05 sshd: was@pts/1
root 1132 2532 0 09:31 ? 00:00:00 sshd: root@pts/0
root 1273 2532 0 10:06 ? 00:00:00 sshd: root [priv]
sshd 1274 1273 0 10:06 ? 00:00:00 sshd: root [net]
$1作为下标 $5域的值 赋给数组a
[root@jssweb awk]# awk '{id[NR]=$3};END{for(x=1; x <= NR;x++) print id[x]}' employees
1234
1111
4444
4444
1000
7666
2 awk变量NR包含当前的记录号,通过NR作为下标,各个记录的第3个域的值
被赋给数组中相应的元素.最后,在END模块中,for 循环被用于循环整个数组
打印那些存储在数组中的值
[root@jhoa ~]# awk '{id[NR]=$3};END{for(x=1; x <= NR;x++) print x, id[x]}' awk.txt
1 2532
2 557
3 2532
4 2532
5 1273
[root@jhoa ~]# awk '{id[NR]=$3};END{for(x in id) print x, id[x]}' awk.txt
4 2532
5 1273
1 2532
2 557
x用于循环数据id的下标,id[x]循环数组元素
[root@jhoa ~]# awk '{id[$2]};END{for(x in id) print x}' awk.txt
563
1132
557
1273
1274
把$2元素代表下标