awk總結(jié)

1.實驗的文本 awk_test.txt

開頭為1,2,3君丁,各有五行。其中有些行的$6$7$8字段為空

1   2   3   4   5   6   7   8
1   2   3   4   5   
1   2   3   4   5   6   7   8
1   2   3   4   5
1   2   3   4   5
2   2   3   4   5   6   7   8
2   2   3   4   5   
2   2   3   4   5   6   7   8
2   2   3   4   5   
2   2   3   4   5
3   2   3   4   5   6   7   8
3   2   3   4   5   6   7   8
3   2   3   4   5   
3   2   3   4   5   6   7   8
3   2   3   4   5   

2. awk 統(tǒng)計列數(shù)

 cat awk_test.txt | awk  '{print NF}'

3.awk統(tǒng)計行數(shù) & awk 引用shell里的變量

lines=`cat awk_test.txt| wc -l`
echo ${lines}
export lines
awk  '{printf("%d",ENVIRON["lines"])}' awk_test.txt

4.awk 內(nèi)置變量

ARGC               命令行參數(shù)個數(shù)
ARGV               命令行參數(shù)排列
ENVIRON            支持隊列中系統(tǒng)環(huán)境變量的使用
FILENAME           awk瀏覽的文件名
FNR                瀏覽文件的記錄數(shù)
FS                 設(shè)置輸入域分隔符鹦马,等價于命令行 -F選項
NF                 瀏覽記錄的域的個數(shù) (列數(shù))
NR                 已讀的記錄數(shù) (從1到最后一行行號)
OFS                輸出域分隔符
ORS                輸出記錄分隔符
RS                 控制記錄分隔符

5. 篩選空字段

例如,找出$8字段為空的行

cat awk_test.txt | awk  '$8 ~/^$/{print NR}'

6.演示

現(xiàn)在awk_test.txt變?yōu)?/p>

1   2   3   4   5   6   7   8
1   2   3   4   5   
1   2   3   4   5   6   7   8
1   2   3   4   5
1   2   3   4   5

問題:求非空$6的平均值

cat awk_test.txt | awk  'BEGIN{b=0;} $8 !~/^$/{a+=$8;b++;} END{printf("%d\t%d\n",a/b)}'

7.awk 中的正則表達忆肾、通配符

  • ~荸频,匹配操作符, 用來在記錄或者域內(nèi)匹配正則表達式 (針對某列)
  • 客冈!~表示不匹配
  • *****可以和零個或多個任意字符匹配
  • ?與任何單個字符匹配
  • ** .** 匹配任何單個字符旭从,每行的換行符也算
  • $匹配行結(jié)束符
  • ^匹配一行的開始
  • *****匹配0或多個正好在它之前的那個字符
  • **用來屏蔽特殊字符的含義
  • +匹配前面的正則表達式的一次或多次出現(xiàn)。
    一些連用的正則表達符號:
  • ^$ 表示空行
  • ^.$* 表示整行

8. awk 中的BEGIN和END

BEGIN: awk開始掃描輸入之前執(zhí)行,可以在里面進行變量賦值和悦。
比如演示6中的BEGIN{b=0;} 退疫。 BEGIN 初始化結(jié)束以后,后面的{}才正式開始掃描輸入文件鸽素,默認以換行符為分隔褒繁。也可以更改,比如以:為分隔

awk  -F ':'  'BEGIN {a=12;}  {a+=$1;} END {print("%d\n",a)}'   xxfile.txt

END:END之后列出的操作將在掃描完全部的輸入之后執(zhí)行馍忽,通常用于輸出最終結(jié)果棒坏。

9. awk 和shell 之間傳參

  • shell 向 awk傳參
# 1.  “‘ $var ’”
var=”test”
awk ‘BEGIN{print “‘$var'”}’
# 2. awk -v 用于參數(shù)較少的情況下
var=”this is a test”
awk -v awk_var=”$var” ‘BEGIN {print awk_var}’
  • awk 向 shell 傳參

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市遭笋,隨后出現(xiàn)的幾起案子坝冕,更是在濱河造成了極大的恐慌,老刑警劉巖瓦呼,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喂窟,死亡現(xiàn)場離奇詭異,居然都是意外死亡吵血,警方通過查閱死者的電腦和手機谎替,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹋辅,“玉大人钱贯,你說我怎么就攤上這事≌炝恚” “怎么了秩命?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長褒傅。 經(jīng)常有香客問我弃锐,道長,這世上最難降的妖魔是什么殿托? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任霹菊,我火速辦了婚禮,結(jié)果婚禮上支竹,老公的妹妹穿的比我還像新娘旋廷。我一直安慰自己,他們只是感情好礼搁,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布饶碘。 她就那樣靜靜地躺著,像睡著了一般馒吴。 火紅的嫁衣襯著肌膚如雪扎运。 梳的紋絲不亂的頭發(fā)上瑟曲,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機與錄音豪治,去河邊找鬼洞拨。 笑死,一個胖子當(dāng)著我的面吹牛鬼吵,可吹牛的內(nèi)容都是我干的扣甲。 我是一名探鬼主播篮赢,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼齿椅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了启泣?” 一聲冷哼從身側(cè)響起涣脚,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎寥茫,沒想到半個月后遣蚀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡纱耻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年芭梯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弄喘。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡玖喘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蘑志,到底是詐尸還是另有隱情累奈,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布急但,位于F島的核電站澎媒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏波桩。R本人自食惡果不足惜戒努,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镐躲。 院中可真熱鬧储玫,春花似錦、人聲如沸匀油。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽敌蚜。三九已至桥滨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背齐媒。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工蒲每, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喻括。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓邀杏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親唬血。 傳聞我的和親對象是個殘疾皇子望蜡,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載 原文的排版和內(nèi)容都更加友好,并且詳細,我只是在這里貼出了一部分留作自己以后參考和學(xué)習(xí),如希望更詳細了解AWK...
    XKirk閱讀 3,214評論 2 25
  • awk介紹awk變量printf命令:實現(xiàn)格式化輸出操作符awk patternawk actionawk數(shù)組aw...
    哈嘍別樣閱讀 1,564評論 0 4
  • awk:報告生成器,格式化文本輸出 內(nèi)容: awk介紹 awk基本用法 awk變量 awk格式化 awk操作符 a...
    BossHuang閱讀 1,456評論 0 9
  • awk: grep,sed,awk grep:文本過濾 sed:文本編輯 awk:文本格式化工具拷恨; 1 什么是aw...
    木林森閱讀 1,782評論 0 16
  • awk簡介 awk是一種編程語言脖律,用于在linux/unix下對文本和數(shù)據(jù)進行處理。數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入腕侄、一個或多...
    yeahuh閱讀 3,955評論 0 7