亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Linux > 正文

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

2019-10-26 18:41:44
字體:
來源:轉載
供稿:網友

最近看到論壇里面有幾個不錯的小例子,對于學習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來進行去除相同的列。這種方法比較有通用性,不光適合二列,三列,四列都行。不過效率差了點。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品亚洲综合天堂夜夜| 欧美日韩性视频在线| 亚洲天堂av综合网| 久久久久久亚洲精品中文字幕| 国产精品免费福利| 97在线视频免费播放| 日韩视频永久免费观看| 久久中文字幕国产| 亚洲激情视频网站| 午夜精品免费视频| 欧美怡红院视频一区二区三区| 国产欧美日韩中文字幕在线| 成人av在线网址| 在线a欧美视频| 欧美日韩免费看| 精品免费在线视频| 国产精品久久久久久久久免费| 欧美午夜宅男影院在线观看| 亚洲国产欧美久久| 中文字幕一区二区精品| 亚洲欧美综合另类中字| 久久久久久久久久久av| 日韩亚洲欧美中文高清在线| 欧美成人在线网站| 欧美视频一二三| 97视频在线观看播放| 久久久999精品免费| 日韩精品在线私人| 欧美日韩一区二区在线| 久久久久国产精品免费网站| 久久精品视频在线观看| 亚洲电影免费观看高清| www.美女亚洲精品| 在线观看亚洲视频| 欧美国产日韩精品| 欧美在线视频一二三| 欧美日韩中国免费专区在线看| 日韩在线视频国产| 国产精品jizz在线观看麻豆| 成人激情免费在线| 国内精品模特av私拍在线观看| 日韩精品在线播放| 欧美性xxxxxxxxx| 欧美亚州一区二区三区| 亚洲国产一区二区三区在线观看| 日韩av影视在线| 91爱爱小视频k| 国产欧美一区二区三区久久| 亚洲色图日韩av| 亚洲电影免费在线观看| 欧美日本啪啪无遮挡网站| 亚洲综合精品一区二区| 欧美性猛交xxxx免费看| 欧美成人免费va影院高清| 国产成人a亚洲精品| 亚洲最新在线视频| 亚洲电影免费在线观看| 欧美一级视频一区二区| 亚洲精品一区二区三区婷婷月| 久久亚洲电影天堂| 自拍亚洲一区欧美另类| 欧美性xxxx极品hd满灌| 欧美午夜xxx| 国产精品手机播放| 91手机视频在线观看| 成人天堂噜噜噜| 国产经典一区二区| 韩日欧美一区二区| 日韩在线www| 国产精品亚洲第一区| 成人妇女淫片aaaa视频| 黄色一区二区在线| 日本一区二区三区在线播放| 国产在线观看一区二区三区| 欧美精品www| 欧美日韩在线观看视频小说| 国产精品久久久久久久午夜| 久久综合久久美利坚合众国| 国产91免费看片| 91网站在线看| 一区二区三区国产在线观看| 欧美精品18videos性欧美| 国产精品久久久久久久久久东京| 国产精品流白浆视频| 中文亚洲视频在线| 亚洲精品中文字幕女同| 精品亚洲夜色av98在线观看| 精品久久久在线观看| 日韩欧美国产免费播放| 成人免费在线视频网址| 久久久久久亚洲精品不卡| 日韩欧美在线视频| 欧美老女人bb| 国产日韩欧美电影在线观看| 欧美性高潮在线| 欧美精品在线网站| 日韩欧美999| 亚洲精品一区二区三区婷婷月| 91亚洲人电影| 日韩免费黄色av| 综合136福利视频在线| 日韩精品免费在线视频| 日本精品中文字幕| 一夜七次郎国产精品亚洲| 免费97视频在线精品国自产拍| 亚洲va国产va天堂va久久| 91精品中国老女人| 日韩电影中文字幕| 日韩av电影国产| 国产高清在线不卡| 一区二区三区国产视频| 久久人91精品久久久久久不卡| 亚洲性无码av在线| 久久成年人免费电影| 精品日本高清在线播放| 久久久久久国产精品美女| 欧美日韩综合视频| 97色在线观看免费视频| 粗暴蹂躏中文一区二区三区| 欧美激情亚洲激情| 欧美老肥婆性猛交视频| www.日韩免费| 欧美成在线视频| 欧美亚洲视频在线看网址| 亚洲影视九九影院在线观看| 久久久久久久爱| 日韩电影大片中文字幕| 97av在线播放| 91影视免费在线观看| 欧美一级淫片播放口| 亚洲成人三级在线| 欧美性生交xxxxx久久久| 成人羞羞国产免费| 欧美日韩国产一中文字不卡| 亚洲国产小视频| 久久久99久久精品女同性| 亚洲精品自拍偷拍| 97久久精品视频| 97在线视频免费观看| 国内精品伊人久久| 午夜精品久久久久久久99热| 日韩av在线导航| 91成人在线视频| 久久综合免费视频影院| 97精品国产97久久久久久免费| 欧美黄色三级网站| 欧美日韩免费看| 欧洲一区二区视频| 亚洲片国产一区一级在线观看| 亚洲free性xxxx护士hd| 亚洲热线99精品视频| 国产精品永久免费| 亚洲欧美日韩在线高清直播| 亚洲成年人影院在线| 亚洲色图第一页| 亚洲性线免费观看视频成熟| 欧美午夜精品久久久久久久| 日韩电影免费观看中文字幕| 国产一区二区三区三区在线观看| 亚洲第一区中文字幕| 中文字幕欧美日韩在线| 国内精品模特av私拍在线观看| 亚洲一区中文字幕在线观看| 97**国产露脸精品国产|