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

主頁 > 知識庫 > 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數組的基本使用方法的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日本欧美在线观看| 国产精品天天摸av网| 欧美xxxxx裸体时装秀| 麻豆高清免费国产一区| 欧美大片一区二区| 国产精品91一区二区| 国产精品久久久久aaaa樱花 | 欧美日韩一区二区电影| 日韩精品国产欧美| 精品久久久三级丝袜| 欧美麻豆精品久久久久久| 亚洲一卡二卡三卡四卡五卡| 日韩欧美的一区| 91影院在线观看| 男女视频一区二区| 成人欧美一区二区三区| 制服视频三区第一页精品| 精品一区二区久久久| 椎名由奈av一区二区三区| 日韩欧美精品在线视频| 成人99免费视频| 日韩va欧美va亚洲va久久| 国产亚洲欧洲997久久综合| 在线视频中文字幕一区二区| 久久99精品视频| 亚洲a一区二区| 国产午夜精品久久久久久久| 制服丝袜国产精品| 99re在线精品| av一区二区三区四区| 久久66热偷产精品| 欧美a级理论片| 亚洲大片一区二区三区| 亚洲人成网站精品片在线观看| 久久久另类综合| 精品久久久三级丝袜| 这里只有精品99re| 欧美性一区二区| 色婷婷综合久久久中文一区二区 | 国产精品中文有码| 一级特黄大欧美久久久| 国产精品乱码人人做人人爱| 久久久五月婷婷| 日韩欧美国产一区二区在线播放| 欧美中文字幕不卡| 91老师片黄在线观看| 粉嫩av一区二区三区| 国产.欧美.日韩| 国产精品综合二区| 久久精品国产秦先生| 日韩国产在线一| 亚洲1区2区3区4区| 亚洲妇女屁股眼交7| 亚洲一区免费在线观看| 一区二区三区免费观看| 亚洲美女屁股眼交| 亚洲狠狠丁香婷婷综合久久久| 国产精品久久久久久久久果冻传媒 | 国产综合色产在线精品| 蜜桃精品视频在线| 免费成人性网站| 精品中文字幕一区二区| 久久精品久久精品| 国产一区二区三区免费观看| 国产精品影音先锋| 99国产精品久久久久久久久久久| 99久久久国产精品| 欧美午夜在线观看| 日韩欧美国产精品一区| 欧美精品一区二区精品网| 日韩欧美高清dvd碟片| 欧美经典一区二区| 亚洲精品免费视频| 免费视频一区二区| 国产精品乡下勾搭老头1| 成人av午夜电影| 欧美色综合天天久久综合精品| 欧美剧情片在线观看| 精品国产伦一区二区三区观看方式| www日韩大片| 一区二区三区四区不卡在线 | 精品久久久网站| 最新成人av在线| 久久 天天综合| 99re热这里只有精品免费视频| 欧美自拍偷拍一区| 国产亚洲欧美一级| 亚洲国产你懂的| 国产成人日日夜夜| 欧美午夜不卡视频| 久久久久久久网| 热久久免费视频| 一本久久综合亚洲鲁鲁五月天 | 亚洲国产精品激情在线观看| ...xxx性欧美| 蜜桃视频免费观看一区| 色94色欧美sute亚洲线路一久| 日韩欧美色综合网站| 亚洲激情自拍偷拍| 国产在线国偷精品产拍免费yy| 91视频91自| 久久女同互慰一区二区三区| 亚洲国产精品久久久久婷婷884| 国产大片一区二区| 51午夜精品国产| 亚洲一区中文日韩| 成人免费毛片片v| 日韩情涩欧美日韩视频| 午夜亚洲国产au精品一区二区| 成人一区在线观看| 亚洲精品一区二区三区香蕉| 亚洲高清免费在线| 在线精品亚洲一区二区不卡| 国产精品毛片无遮挡高清| 男男gaygay亚洲| 精品视频一区二区不卡| 国产精品久久久一区麻豆最新章节| 激情综合网天天干| 精品国偷自产国产一区| 日本91福利区| 666欧美在线视频| 日韩精品一区第一页| 欧美亚洲综合久久| 亚洲国产精品久久人人爱| 一本色道亚洲精品aⅴ| 亚洲欧美另类在线| 91视频精品在这里| 一区二区三区在线观看动漫| 99视频一区二区| 亚洲婷婷综合色高清在线| 成人的网站免费观看| 国产精品第五页| 色婷婷亚洲婷婷| 有坂深雪av一区二区精品| 91成人在线免费观看| 一区二区三区精密机械公司| 一本大道久久精品懂色aⅴ| 一区二区在线看| 欧美日韩国产成人在线91| 日韩电影在线观看电影| 欧美www视频| 国产高清不卡二三区| 亚洲日本在线观看| 欧美天堂一区二区三区| 亚洲mv在线观看| 久久人人超碰精品| 99久免费精品视频在线观看| 亚洲人成网站精品片在线观看 | 午夜久久福利影院| 欧美mv日韩mv亚洲| 国产99一区视频免费| 亚洲一区二区三区激情| 日韩精品自拍偷拍| 99久精品国产| 免费久久99精品国产| 国产午夜精品一区二区| 色婷婷激情一区二区三区| 亚洲va欧美va人人爽| 久久精品一区二区三区av| 国产精品一区二区久久不卡| 亚洲丝袜美腿综合| 久久久久九九视频| 欧美三级视频在线| 成人在线综合网| 视频一区欧美日韩| 国产精品短视频| 久久新电视剧免费观看| 欧美无砖砖区免费| 成人中文字幕在线| 色综合一个色综合亚洲| 日韩成人午夜电影| 1024精品合集| 久久精品在这里| 日韩一区国产二区欧美三区| 成人综合在线视频| 狠狠色丁香九九婷婷综合五月| 久久国产精品99久久久久久老狼 | 美女尤物国产一区| 久久aⅴ国产欧美74aaa| 亚洲男女一区二区三区| 欧美va亚洲va香蕉在线| 色婷婷综合在线| 成人少妇影院yyyy| 精品亚洲欧美一区| 香蕉加勒比综合久久| 亚洲日本va午夜在线电影| 久久综合999| 精品国产乱码久久久久久闺蜜| 欧美日韩日日夜夜| 欧美亚洲一区二区三区四区| 99视频精品在线| 99r精品视频| 日本黄色一区二区| 一本色道久久综合狠狠躁的推荐| 成人网男人的天堂| 美女诱惑一区二区| 狂野欧美性猛交blacked| 日韩av一级片| 麻豆精品蜜桃视频网站| 日韩电影在线一区二区|