root@bt:~# awk -F: '{name[x++]=$1}; END {for(i = 0; i < NR; i++) print i, name}' /etc/passwd
0 root
1 daemon
2 bin
3 sys
/* ... 省略一部分输出 ... */
30 festival
31 postgres
32 vboxadd
{ for (item in arrayname) {
print arrayname[item]
}
}
York
Tom
Jasmine
Jason
Jimy
Molly
Jasmine
Lili
LinKen
Cuki
Gaby
Jasmine
Gilbert
Gilber
Jasmine
# awk '/Jasmine/{name[NR]=$1}; END {for (i = 1; i <= NR; i++)print i, name}' name.txt
1
2
3 Jasmine
4
5
6
7 Jasmine
8
9
10
11
12 Jasmine
13
14
15 Jasmine
# awk '/Jasmine/{name[NR]=$1}; END {for(i in name)print i, name}' name.txt
7 Jasmine
12 Jasmine
15 Jasmine
3 Jasmine
York
Tom
Jasmine
Jason
York
Jimy
Molly
Jasmine
Jason
Lili
LinKen
Cuki
Gaby
Jasmine
Gilbert
Gilber
Jasmine
Jason
Tom
Kiki
York
# awk '/Tom/ {count["Tom"]++}; /Jasmine/ {count["Jasmine"]++};END {for (name in count)print name, count[name]}' name.txt
Tom 2
Jasmine 4
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
SYN_RECV 101
CLOSE_WAIT 3
ESTABLISHED 86
FIN_WAIT1 130
FIN_WAIT2 28
CLOSING 66
TIME_WAIT 2746
split (字符串, 数组, 字段分隔符)
split (字符串, 数组)
# awk 'BEGIN{split("23/9/2011", date, "/"); for(i = 1; i <= 3; i++) print date}'
23
9
2011
# awk 'BEGIN{split("23/9/2011", date, "/"); for(i in date) print date}'
23
9
2011
# awk 'BEGIN{split("23/9/2011", date, "/"); delete date[2]; for(i in date) print date}'
23
2011
1 2 3 4 5
6 7 8 9 10
11 22 13 14 15
16 17 18 19 20
21 22 23 24 25
{
nf = NF
for (x = 1; x <= NF; x++) {
matrix[NR, x] = $x
}
}
END { for (x = 1; x <= NR; x++) {
for (y = 1; y <= nf; y++)
printf "%d ", matrix[x,y]
printf "\\n"
}
}
# awk -f mularr.awk mularray.txt
1 2 3 4 5
6 7 8 9 10
11 22 13 14 15
16 17 18 19 20
21 22 23 24 25
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |