婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > awk實現Left、join查詢、去除重復值以及局部變量講解例子

awk實現Left、join查詢、去除重復值以及局部變量講解例子

熱門標簽:杭州機器人外呼系統 陜西電銷卡外呼系統怎么安裝 excel地址地圖標注 百度地圖標注圖標更換 地圖標注超出范圍怎么辦 旅游地圖標注大全 百度地圖的地圖標注 東莞電銷機器人價格一覽表 佛山高德地圖標注中心

最近看到論壇里面有幾個不錯的小例子,對于學習awk還是有幫助,在這兒詳細的說一下

一、類似數據庫中的left join查詢

復制代碼 代碼如下:

[root@krlcgcms01 mytest]# cat a.txt    //a.txt
111   aaa
222   bbb
333   cccc
444   ddd
[root@krlcgcms01 mytest]# cat b.txt    //b.txt
111  123  456
2    abc  cbd
444  rts  786


要求輸出結果是
111,aaa,123,456
444,ddd,rts,786

實現方法:

復制代碼 代碼如下:

[root@krlcgcms01 mytest]# awk 'NR==FNR{a[$1]=$2;}NR!=FNR a[$1]{print $1","a[$1]","$2","$3}' a.txt b.txt
111,aaa,123,456
444,ddd,rts,786

解釋:當NR和FNR相同時,這就說明在對第一個文件進行操作,a[$1]=$2表示,建立一個數組,以第一個字段為下標,第二個字段為值。當NR!=FNR時,說明在對第二個文件進行操作,注意:這個時候的$1和前面的$1不是同一個東西了,前面的$1表示的是a.txt的第一個字段,而后面的$1表示的是b.txt的第一個字段。a[$1]表示以b.txt中第一個字段的為下標的值,如果a[$1]有值的話,說明也存在于a.txt文件中,這樣就把數據print出來就行了。

實現方法2:

復制代碼 代碼如下:

[root@krlcgcms01 mytest]# awk -v OFS="," 'NR==FNR{a[$1]=$2;} NR!=FNR $1 in a { print $1,a[$1],$2,$3}' a.txt b.txt
111,aaa,123,456
444,ddd,rts,786

解釋:-v OFS=","這個是設置輸出時的列分割符,$1 in a這個是b.txt文件中的第一列的值是不是在數組a的key中,這個對做程序的來說很好理解,各種語言當中都有這樣的用法,或者函數。例如,php中有in_array函數。比較一下,方法1和方法2中的print,方法1我加了雙引號,方法2我卻沒有加,但是輸出的效果卻是一樣的。

二、去除重復的值

復制代碼 代碼如下:

[root@krlcgcms01 mytest]# cat repea   //文件repea
 a b
 c d
 e f
 b d
 b a
 f e
 1 2
 2 1

如果有a,b和b,a這樣的情況,就刪除b,a,當然數字也一樣;

實現方法1:

復制代碼 代碼如下:

awk '{for(i=1;i=NF;i++)a[i]=$i;asort(a);for(i=1;i=length(a);i++)printf a[i]"\t";printf "\n"}' repea|sort|uniq
1       2
a       b
b       d
c       d
e       f

解釋:for(i=1;i=NF;i++)a[i]=$i;將每一列中的二個字段放到數組中,asort(a),這個數組進行排序,后面的代碼是將數組數據輸出來,通sort命令對輸入的數據進行排序,相同數據會排在一起,通過uniq來進行去除相同的列。這種方法比較有通用性,不光適合二列,三列,四列都行。不過效率差了點。

實現方法2:

復制代碼 代碼如下:

[root@krlcgcms01 mytest]# awk '{a[$0]=$0;if (!($2 OFS $1 in a)) print a[$0] }' repea
a b
c d
e f
b d
1 2
[root@krlcgcms01 mytest]# awk '{a[$0];if (!($2 OFS $1 in a)) print  }' repea   
a b
c d
e f
b d
1 2

解釋:方法2的二種寫法,出來的結果是一樣的,a[$0];沒有賦值也沒有報錯,為什么呢?awk在遇到這樣沒有定義的變量時,會給它一個初值。if (!($2 OFS $1 in a))表示返轉字段不在數組a中,這里所說的在,表示key是不是存在,不是值。print 不寫默認是一行。

實現方法3:

復制代碼 代碼如下:

[root@krlcgcms01 mytest]# awk '!a[$1_$2]++!a[$2_$1]++' repea
a b
c d
e f
b d
1 2
[root@krlcgcms01 mytest]# awk '{if(!a[$1_$2]++!a[$2_$1]++)print $0;}' repea
a b
c d
e f
b d
1 2

解釋:!a[$1_$2]++!a[$2_$1]++等于if(!a[$1_$2]++!a[$2_$1]++),對于首次出現的記錄,a[$2_$1]的值是未定義的,由于后面的 ++ 是數學計算,所以a[$2_$1]會被賦值成數字0,也是由于 ++ 操作符,會先取值,再計算,從左到右 ++ 運算符的優先級大于!運算符的,所以對于第一行記錄實際上是if(! 0) print $0     ! 是取反,0 是假,! 0 就是真,那么就會執行后面的 print $0對于后面出現的重復記錄,a[$0] 經過 ++ 的計算已經變為 1、2、3 。。。而 ! 1  ! 2  ! 3 ... 都為假,不會打印。

三、awk的局部變量

這個例子來說明一下,awk怪異的局部變量

復制代碼 代碼如下:

[root@krlcgcms01 mytest]# cat sum 
 1       2 
 2       3 
 a       b 
 3       2 
 4       1 
 3       r 

把都是數字的行,最大的那個數字加起來,第一行是2,第二行是3,每四行是3,第五行是4,總和是12

復制代碼 代碼如下:

function max(one,two){
 if(one > two){
 sum = sum + one;
 }else{
 sum  = sum + two;
 }
 }

{if($1~"[0-9]" $2~"[0-9]") max($1,$2);}
 END{print "sum="sum}


在max方法里面,變量sum是會影響外面的,這里的sum是全局的。
[root@krlcgcms01 mytest]# awk -f add.sh sum
sum=12

復制代碼 代碼如下:

function max(one,two,sum){    //方法中的sum局部變量
if(one > two){
sum = sum + one;
}else{
sum  = sum + two;
}
}

{if($1~"[0-9]" $2~"[0-9]") max($1,$2,sum);}

END{print "sum="sum}         //所以為空

[root@krlcgcms01 mytest]# awk -f add.sh sum
sum=

復制代碼 代碼如下:

function max(one,two,sum){
 if(one > two){
 sum = sum + one;
 }else{
 sum  = sum + two;

 }

  return  sum                 //加上return就可以了
 }

{if($1~"[0-9]" $2~"[0-9]") sum = max($1,$2,sum);}

END{print "sum="sum}

標簽:朝陽 西藏 通遼 隨州 青島 南充 延邊 雅安

巨人網絡通訊聲明:本文標題《awk實現Left、join查詢、去除重復值以及局部變量講解例子》,本文關鍵詞  awk,實現,Left,join,查詢,去除,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《awk實現Left、join查詢、去除重復值以及局部變量講解例子》相關的同類信息!
  • 本頁收集關于awk實現Left、join查詢、去除重復值以及局部變量講解例子的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    制服丝袜一区二区三区| 精品一区二区在线观看| 久久精品夜色噜噜亚洲aⅴ| 国产精品盗摄一区二区三区| 日韩在线a电影| eeuss鲁片一区二区三区| 欧美日本在线一区| 日韩欧美在线综合网| 综合分类小说区另类春色亚洲小说欧美 | 美日韩一区二区| 欧美三级电影在线观看| 国产精品美女久久久久久2018| 六月丁香婷婷色狠狠久久| 欧洲一区在线电影| 亚洲乱码国产乱码精品精的特点| 成人av在线网站| 亚洲综合男人的天堂| 在线观看av不卡| 亚洲不卡av一区二区三区| 欧美日韩国产免费一区二区| 亚洲电影一级片| 欧美精品一区男女天堂| 亚洲私人影院在线观看| 99久久精品99国产精品| 亚洲成av人片在线观看无码| 欧美一区二区三区在线观看 | 国产成人99久久亚洲综合精品| 精品处破学生在线二十三| 粉嫩av亚洲一区二区图片| 日韩一区日韩二区| 欧美一区永久视频免费观看| 黄色精品一二区| 一级特黄大欧美久久久| 日韩一卡二卡三卡| 在线观看视频一区二区| 美女国产一区二区| 亚洲精品ww久久久久久p站| 精品三级在线观看| 欧美在线|欧美| 不卡电影一区二区三区| 免费精品99久久国产综合精品| 国产精品久久久久aaaa樱花| 精品国产三级电影在线观看| 在线视频国产一区| 色综合天天综合色综合av| 国产精品自在在线| 国产激情一区二区三区| 亚洲午夜久久久久久久久久久| 国产成人av一区二区三区在线| 亚洲精品一区二区精华| 成人app软件下载大全免费| 精品一区二区三区在线播放视频| 亚洲成人激情社区| 久久激情五月激情| 国产资源精品在线观看| 国产一区视频在线看| 国产大片一区二区| 成人av免费观看| 在线欧美日韩精品| 欧美日韩国产片| 久久久久综合网| 综合在线观看色| 石原莉奈在线亚洲二区| 蜜桃av一区二区三区电影| 国产传媒久久文化传媒| 成人免费福利片| 欧美体内she精视频| 日韩一级片在线播放| 国产无一区二区| 午夜成人在线视频| 国产乱码精品一区二区三| 欧美aaaaaa午夜精品| 成人晚上爱看视频| 久久毛片高清国产| 欧美成人性福生活免费看| 26uuu国产电影一区二区| 亚洲综合激情另类小说区| 国产久卡久卡久卡久卡视频精品| 在线免费不卡电影| 国产精品久久777777| 青青草97国产精品免费观看| 欧美日韩国产在线观看| 亚洲欧洲精品一区二区三区不卡| 美美哒免费高清在线观看视频一区二区| 97精品国产露脸对白| 亚洲欧美一区二区三区国产精品| 波多野结衣视频一区| 自拍偷拍亚洲欧美日韩| 成人av影院在线| 日韩伦理免费电影| 91蜜桃在线观看| 亚洲成av人片一区二区梦乃| 欧美亚一区二区| 亚洲成人在线免费| 精品少妇一区二区| 成人福利视频网站| 中文字幕亚洲不卡| 色综合久久久久综合体桃花网| 一区二区三区av电影| 91精品免费在线| 国产91清纯白嫩初高中在线观看| 亚洲国产精品ⅴa在线观看| 91免费版pro下载短视频| 日韩精品午夜视频| 亚洲欧洲日韩一区二区三区| 欧美一区二区三区人| 国产精品亚洲а∨天堂免在线| 有坂深雪av一区二区精品| 日韩欧美中文一区二区| 成人a级免费电影| 另类小说色综合网站| 国产女主播视频一区二区| 91精品在线观看入口| 一本久道中文字幕精品亚洲嫩| 国产乱码精品一品二品| 亚洲成av人片| 亚洲制服丝袜av| 中文字幕在线不卡一区| 国产欧美精品一区二区三区四区| 欧美一区二视频| 在线播放中文字幕一区| 欧美日韩一二三| 在线观看三级视频欧美| 精品日韩欧美一区二区| 欧美视频中文字幕| 欧美日韩免费视频| 欧美一区日韩一区| 欧美一区二区三区视频在线观看| 欧美性猛交xxxx乱大交退制版 | 亚洲男女一区二区三区| 中文字幕av资源一区| 亚洲精品一区二区三区精华液| 欧美一区二区三区婷婷月色| 欧美日韩国产综合一区二区三区 | 日韩三区在线观看| 久久综合九色综合97婷婷女人 | 日韩欧美不卡在线观看视频| 制服丝袜中文字幕一区| 久久只精品国产| 一个色在线综合| 成人免费视频免费观看| 欧美日韩精品综合在线| 精品国产91亚洲一区二区三区婷婷 | 日韩精品一区二区三区视频播放 | 亚洲精品免费视频| 久久精品99国产精品日本| 91视频在线观看| 久久精品视频免费观看| 亚洲国产精品嫩草影院| 国产69精品久久777的优势| 色综合久久中文综合久久97| 精品国产一区二区三区久久久蜜月| 中文字幕一区二| 成人久久久精品乱码一区二区三区| 色综合久久天天| 亚洲图片欧美综合| 91视频一区二区| 国产精品传媒视频| 成人爽a毛片一区二区免费| 久久久久88色偷偷免费| 精品在线视频一区| 欧美一卡二卡三卡| 精品在线免费视频| 亚洲精品一区二区三区福利| 成人蜜臀av电影| 欧美一级在线视频| 丝瓜av网站精品一区二区| 91福利国产精品| 亚洲成人777| 久久亚区不卡日本| 成a人片国产精品| 亚洲成人中文在线| 国产亚洲精品bt天堂精选| 91丨porny丨最新| 久久精品国产色蜜蜜麻豆| 久久综合99re88久久爱| 99久久精品国产麻豆演员表| 樱桃国产成人精品视频| 制服丝袜在线91| 一本色道久久加勒比精品| 久久99热这里只有精品| 一区二区三区**美女毛片| 久久影视一区二区| 91精品国产乱| 精品视频一区二区不卡| 国产黄色91视频| 日本一道高清亚洲日美韩| 亚洲柠檬福利资源导航| 日本一区二区综合亚洲| 欧美日韩五月天| 欧美日韩精品免费观看视频 | 久久综合九色综合欧美亚洲| 色菇凉天天综合网| 国产一区二三区| 麻豆免费精品视频| 麻豆精品视频在线观看| 香蕉av福利精品导航| 成人在线综合网| proumb性欧美在线观看| 激情伊人五月天久久综合|