校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Linux中的awk數組的基本使用方法

Linux中的awk數組的基本使用方法

熱門標簽:撫順地圖標注 新余高德地圖標注怎么修改 高德地圖標注好做嗎 如何分析地圖標注 外呼系統坐席費計入會計哪個科目 大連400電話如何申請 電銷機器人怎么接線路 電銷機器人價值 達亞電銷機器人官網

1.awk數組描述

在其他的編程語言中,數組的下標都是從0開始的,也就是說,如果想反向引用數組中 的第一個元素,則需要引用對應的下標[0],在awk中數組也是通過引用下標的方法,但是在awk中數組的下標是從1開始的,在其他語言中,你可能會習慣于先“聲明”一個數組,在awk中,則不用這樣,直接為數組的元素賦值即可(其實如果自己給數組賦值,下標從1或者從0開始那就無所謂了!)

2.在聲明數組時,可能值很多,命令太長,降低命令可讀性,所以使用反斜杠“\”,來進 行換行,效果是完全一樣的,代碼如下所示:

[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three"\

;arr[4]="four";print arr[3]}'
three
[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three";arr[4]="four";print arr[3]}'
three

3.數組的元素設置為空,是允許的,當數組中沒有某個元素而直接引用它的時候,它默認被賦值為空,所以判斷某個元素是否存在,不能采用數組元素值為空的方法,而應該采用下面的方法:

[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three";if(4 in arr){print "four in this arr"}}'
[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three";if(3 in arr){print "three in this arr"}}'
three in this arr

也可以采用取反的方式(使用運算符!)

[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three";if(!(4 in arr)){print "four not in this arr"}}'
four not in this arr

4.awk數組下標

在awk中數組的下標不僅可以是“數字”,還可以是“任意字符串”,其實,awk中的數組本來就是“關聯數組”,之所以先用數字作為下標舉例子是為了方便之前的習慣,能夠有個好的過渡,不過,以數字作為數組的下標在某些場景有一定的優勢,但是本質上也是“關聯數組”,awk默認會把“數字”下標轉換成“字符串”,所以它本質上還是一個使用字符串作為下標的“關聯數組”

5.刪除數組元素

使用 delete 可以刪除數組中的元素,也可以使用 delete 刪除整個數組

[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three";\

> delete arr[1];print arr[1]}'
____(空)
[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three";\

print arr[1];print arr[3];delete arr;print arr[1]}'
one
three
____(空)

6.使用for循環遍歷數組

語法:for(變量 in 數組名){ 代碼語句 }

注:其中變量循環的是數組的下標

[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three";arr[4]="four";\

> for ( i in arr){print arr[i]}}'
four
one
two
three
#無序的打印數組元素,進一步證明其是“關聯數組”
#有序的打印數組元素
[zkpk@master as]$ awk 'BEGIN{arr[1]="one";arr[2]="two";arr[3]="three";arr[4]="four";\

for ( i=1;i<=4;i++){print arr[i]}}'
one
two
three
four

7.awk數組使用實例

[zkpk@master as]$ awk 'BEGIN{a=1;print a; a=a+1 ; print a}'
1
2
[zkpk@master as]$ awk 'BEGIN{a=1;print a; a++ ; print a}'
1
2

將變量a設置為1,對其進行自加運算,則其數值會增加1,這不難理解,那么如果變量a是一個字符串哪?

[zkpk@master as]$ awk 'BEGIN{a="test";print a; a++ ; print a}'
test

當a的值為字符串時,竟然也可以參與運算,而且可以看出,字符串被當成數字0參與運算,那么空字符串參與運算時也會被當成0運算嗎?

[zkpk@master as]$ awk 'BEGIN{a="";print a; a++ ; print a}'
____(空)

結果顯示,空字符串在參與運算時也會被當做數字0,之前我們說過,當我們引用數組中一個不存在的元素,元素被賦值成空字符串,當對這個元素進行自加運算時,元素的值就變成了1,因此當我們對一個不存在的元素進行自加運算后,這個元素的值就變成了自加的次數,自加x次,元素的值就被賦值為x,自加y次元素的值就被賦值為y,所以我們可以通過awk數組的這個特性來統計文本中某字符串出現的次數,代碼如下所示

[zkpk@master as]$ cat text
Alice
Bob
Tom
Peter
Alice
Alice
Tom
Bob
Peter
Bob
[zkpk@master as]$ awk '{count[$1]++};END{for(i in count){print i,count[i]}}' text
Bob 3
Tom 2
Alice 3
Peter 2

這回你該發現awk數組這個特性的強大所在了吧,好,也許你會說我不用awk照樣可以統計啊,代碼如下所示:

[zkpk@master as]$ cat text | sort | uniq -c
   3 Alice
   3 Bob
   2 Peter
   2 Tom

好吧,我承認你這個思路很棒,但是你看看下面例子哪?統計文本中人名出現的次數

[zkpk@master as]$ cat -tE text
Alice^IBob$
Bob^IAlice Alice   Peter$
Tom Bob$
Peter Alice $
Alice Tom$
Alice^I^ITom $
Tom Peter$
Bob Bob$
Peter Alice$
Bob Alice Alice  Tom$
#我們可以看出上面的文本中人名之間的分隔符有制表符,也有空格,來吧,統計人名出現的次數吧,
#我使用awk數組的方式可以這樣統計
[zkpk@master as]$ awk '{for(i=1;i<=NF;i++){count[$i]++} }END{for(j in count)\

{print j , count[j]}}' text
Bob 6
Tom 5
Alice 9
Peter 4

但若你不用awk,非得用其他命令實現可以參考如下代碼( ^_^ )

[zkpk@master as]$ cat text | tr -s "\t" " " | tr -s " " "\n" | sort | uniq -c
   9 Alice
   6 Bob
   4 Peter
   5 Tom

結尾

本文介紹了awk數組的基本使用方法,但是要學會靈活的運用,我在上面的示例中也寫出了一些可以在某種程度上替換awk數組的方式,所以本文不單單是介紹awk數組該如何使用,而是如何在合適的場景,選擇出最優的解決方案,快速高效的解決問題。這就是我一直追求的,也是我學習Linux命令的真實意圖。

以上所述是小編給大家介紹的Linux中的awk數組的基本使用方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

標簽:新鄉 衡水 海東 南通 湖南 楊凌 黃石 遼源

巨人網絡通訊聲明:本文標題《Linux中的awk數組的基本使用方法》,本文關鍵詞  Linux,中的,awk,數組,的,基本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux中的awk數組的基本使用方法》相關的同類信息!
  • 本頁收集關于Linux中的awk數組的基本使用方法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    91一区二区三区在线观看| 九九九精品视频| 91丨九色丨蝌蚪富婆spa| ...av二区三区久久精品| 国产成人av在线影院| 国产精品女同互慰在线看| 91麻豆蜜桃一区二区三区| 亚洲成人精品影院| 欧美xfplay| 99久久精品情趣| 亚洲一本大道在线| 精品国产青草久久久久福利| 国产一区二区三区四区五区入口 | 亚洲成人在线观看视频| 51久久夜色精品国产麻豆| 精品一区二区三区不卡| 欧美国产一区二区| 欧美日韩一区二区三区视频| 日韩高清一区在线| 国产婷婷一区二区| 欧美亚洲一区二区三区四区| 日韩国产精品久久久| 国产日韩欧美亚洲| 欧美制服丝袜第一页| 国产自产v一区二区三区c| 亚洲精品你懂的| 欧美成人aa大片| 91免费国产在线观看| 青娱乐精品视频| 国产精品久久久久7777按摩| 欧美猛男男办公室激情| 成人午夜伦理影院| 视频在线观看一区二区三区| 国产亚洲视频系列| 欧美日韩国产一级二级| 成人午夜视频福利| 精品制服美女丁香| 洋洋成人永久网站入口| 2017欧美狠狠色| 欧美日免费三级在线| 懂色av中文一区二区三区| 日韩精品国产欧美| 亚洲黄色录像片| 国产喷白浆一区二区三区| 777亚洲妇女| www.欧美.com| 激情文学综合网| 舔着乳尖日韩一区| 亚洲人成在线观看一区二区| 久久精品一二三| 日韩天堂在线观看| 欧美日韩一级视频| 色天天综合色天天久久| www.欧美日韩| 国产成a人亚洲精| 麻豆视频观看网址久久| 石原莉奈在线亚洲二区| 一区二区三区欧美亚洲| 自拍偷拍欧美激情| 国产人成一区二区三区影院| 亚洲精品一区二区三区蜜桃下载 | 久久精品无码一区二区三区| 欧美一区二区三区思思人| 在线精品视频免费观看| 91啦中文在线观看| 99精品1区2区| kk眼镜猥琐国模调教系列一区二区 | 美国三级日本三级久久99| 一区二区久久久久| 亚洲精品高清在线| 亚洲已满18点击进入久久| 亚洲乱码日产精品bd| 亚洲另类一区二区| 亚洲美女在线一区| 亚洲一本大道在线| 日韩综合小视频| 爽爽淫人综合网网站| 免费在线观看一区二区三区| 天堂蜜桃91精品| 日韩电影在线看| 免费人成黄页网站在线一区二区| 日韩激情在线观看| 麻豆久久久久久| 国产一区二区精品久久| 国产91丝袜在线播放九色| 国产精品一二二区| 成人一级片网址| 91丝袜呻吟高潮美腿白嫩在线观看| 成人国产精品免费观看动漫| 99久久99久久精品国产片果冻| 91在线精品一区二区| 91看片淫黄大片一级在线观看| 在线视频观看一区| 91麻豆精品91久久久久久清纯| 日韩写真欧美这视频| 久久―日本道色综合久久| 国产婷婷色一区二区三区| 亚洲私人影院在线观看| 偷窥少妇高潮呻吟av久久免费| 免费看日韩精品| 成人午夜在线视频| 欧美系列一区二区| 精品国产亚洲在线| 亚洲欧美一区二区三区极速播放 | 欧美中文字幕一区二区三区亚洲 | 国产揄拍国内精品对白| www.亚洲人| 欧美日韩aaa| 久久久久99精品国产片| 亚洲三级免费电影| 免费在线观看一区| 99在线精品一区二区三区| 欧美日韩国产小视频在线观看| 亚洲精品在线电影| 亚洲天堂精品在线观看| 亚洲成人动漫av| 成人综合在线网站| 在线播放中文字幕一区| 中文字幕av资源一区| 日韩精品亚洲一区二区三区免费| 国产1区2区3区精品美女| 欧美日韩一区高清| 国产精品久久久久影院色老大| 午夜精品爽啪视频| 成人av免费在线| 精品国产91久久久久久久妲己| 亚洲老妇xxxxxx| 国产精品小仙女| 69久久夜色精品国产69蝌蚪网| 中文字幕成人网| 另类人妖一区二区av| 色婷婷久久久久swag精品 | 国产精品色噜噜| 蜜臀国产一区二区三区在线播放| 91色porny在线视频| xfplay精品久久| 午夜av区久久| 一本一道波多野结衣一区二区| 精品电影一区二区| 日韩综合一区二区| 91久久香蕉国产日韩欧美9色| 国产日韩欧美一区二区三区乱码 | 欧美xxxx老人做受| 丝袜亚洲另类欧美| 欧美四级电影在线观看| 国产精品国产自产拍高清av| 精品一区二区免费在线观看| 欧美精品日韩精品| 一区二区三区在线视频免费| 成人免费看片app下载| 精品人在线二区三区| 日本一区中文字幕| 69堂精品视频| 午夜精品一区二区三区电影天堂| 91久久香蕉国产日韩欧美9色| 亚洲欧洲日韩av| hitomi一区二区三区精品| 国产欧美日韩麻豆91| 国产精品综合一区二区三区| 日韩精品一区在线观看| 麻豆国产91在线播放| 91精品国产综合久久精品| 图片区日韩欧美亚洲| 欧美日韩国产美女| 五月婷婷另类国产| 欧美人狂配大交3d怪物一区 | 18成人在线观看| 91麻豆国产精品久久| 亚洲品质自拍视频网站| 色94色欧美sute亚洲线路二| 亚洲黄色av一区| 欧美专区日韩专区| 天天做天天摸天天爽国产一区 | 亚洲免费在线电影| 欧美性大战久久久久久久| 五月综合激情日本mⅴ| 日韩午夜在线观看| 国内不卡的二区三区中文字幕| 精品日本一线二线三线不卡| 国产精品香蕉一区二区三区| 国产精品免费视频观看| 91浏览器打开| 日本在线不卡视频| 久久午夜电影网| 91美女在线视频| 午夜成人免费视频| 久久蜜臀精品av| 色先锋资源久久综合| 日日夜夜免费精品| 久久久久久久久99精品| 成人午夜私人影院| 亚洲国产精品精华液网站| 日韩欧美国产一区在线观看| 国产成人午夜电影网| 一区二区三区欧美视频| 欧美一区日韩一区| 成人黄色av电影| 视频一区二区不卡| 国产精品每日更新在线播放网址| 在线免费观看成人短视频|