awk学习笔记(10) - 数组
awk中的數(shù)組
awk中的數(shù)組跟php中的很像,使用前都不需要聲明,都可以用字符串做下標(biāo)。
我們創(chuàng)建一個(gè)reg.dat文件來記錄用戶選修的課程:
現(xiàn)在要統(tǒng)計(jì)各課程被選的次數(shù),親,怎么辦?
之前的程序都是用命令行完成的,從這一篇開始,我們學(xué)習(xí)將程序?qū)懺谖募衼碚{(diào)用。
調(diào)用的方式是:
下面創(chuàng)建一個(gè)course.awk文件,在里面編寫如下的程序:
然后在命令行中調(diào)用:
輸出結(jié)果:
解釋一下course.awk中的程序:
第一行是一個(gè)for循環(huán),NF是一行的字段數(shù),Number是一個(gè)數(shù)組,$i從第2列開始,直到一行最后一列,其實(shí)就是循環(huán)了一行的所有的課程,我們將課程名作為數(shù)組的下標(biāo),一旦有重復(fù)的課程,就會(huì)將Number[$i]加1。
第二行中的END表示的是在文件處理結(jié)束后進(jìn)行的處理。這一行也有一個(gè)for循環(huán),它是用于將Number數(shù)組格式化輸出,for(course in Number)會(huì)逐個(gè)讀取Number中的元素,讀取的下標(biāo)即course,值為Number[course]。printf完成下標(biāo)與值的格式化輸出。
其實(shí)在之前的awk學(xué)習(xí)筆記(6)中介結(jié)不排序?qū)?shù)據(jù)去重的技巧時(shí)已經(jīng)用到過數(shù)組了,只是沒有系統(tǒng)的學(xué)習(xí)。
轉(zhuǎn)載于:https://blog.51cto.com/ustb80/1034692
總結(jié)
以上是生活随笔為你收集整理的awk学习笔记(10) - 数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站提速-页面静态化(2)
- 下一篇: 完整的目标管理三段俱全