awk的用法

一肮之、awk命令用法

? ? ? ? 在Linux中掉缺,awk 即 gawk , awk的二進制文件為gawk的鏈接文件;

? ?????? gawk - pattern scanning and processing language / 模式掃描及處理語言戈擒;

? ? ? ? 用法: gawk [options]? 'pattern{ACTION }'? FILE...

? ? ? ? 1眶明、options:? ? ?-F: 定義輸入字段分隔符,默認字符為空格;

? ? ? ? ? ? ? ? ? ? ? ? ? ?-v var=val? : 自定義變量峦甩;

? ? ? ?2赘来、常見的輸出分隔符:

? ? ? ? ? ? ? ? ? ? ? ? ? ? a.print? :

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?格式:? ? print item1,item2.....? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?注意: item之間用 逗號分割;item可以是字符串凯傲、數(shù)值犬辰;當前處理行的字段、變量或awk的表達式冰单;

? ? ? ? ? ? ? ? ? ? ? ? ? ? b.printf : 按照給定格式輸出幌缝;

? ? ? ? ? ? ? ? ? ? ? ? ? ? 格式:printf? FORMAT , item1,item2?

? ? ? ? ? ? ? ? ? ? ? ? ? ? 注意:FORMAT必須項;如果換行需要手動給出\n诫欠;每一個輸出的item都需要對應(yīng)FORMAT中的格式化符號涵卵;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 格式符有:

????????????????????????????????????????????????%d,%i : 顯示十進制的整數(shù);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %s : 顯示字符串荒叼;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %f : 顯示浮點數(shù)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %c : 顯示字符串的ASCII碼;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? %e,%E : 科學計算法顯示;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%u: 無符號整數(shù);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?%% : 顯示%本身轿偎;

? ? ? ? ? ? ? ? ? ? ? ? ? ? c. 修飾符,對輸出進行修飾

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#,[#] : 分別控制輸出item的寬度和精度(小數(shù))被廓;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-? : 控制輸出item 左對齊;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?+? :控制輸出item(數(shù)值) 的符號;

? ? ? ?3坏晦、awk變量:

? ? ? ? ? ? ? ? ? ? ? ? ? ? a. 內(nèi)置變量

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? FS :輸入字段分隔符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? OFS: 輸出字段分隔符

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NF : number of? fields /行字段數(shù) ;? ?$NF:最后一個字段的值;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NR : number of record/ 行數(shù)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? FNR : file of number record /顯示每個文件的行數(shù)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? FILENAME : 顯示當前正在處理的文件的名字

? ? ? ? ? ? ? ? ? ? ? ? ? ? b.自定義變量

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?-v? var_name=VALUE


????????????????eg1:?~]# awk -F: '/root\>/{print $1}' /etc/passwd

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? root

????????????????????????????????operator

????????????????????????????????oseroot

? ? ? ? ? ? ? ?eg2: ~]# awk -v FS=":" '/root/{print $1}' /etc/passwd

????????????????????????????????root

????????????????????????????????operator

????????????????????????????????oseroot

? ? ? ? ? ? ? ? eg3: 控制輸出item的方式? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? eg4:? 打印/etc/passwd 的 字段數(shù)及最后一個字段的值? ? ? ??

????????????????????~]# awk -F: '/root/{print NF,$NF}' /etc/passwd

????????????????????????????7 /bin/bash

? ? ? ? ? ? ? ? ? ? ? ? ? ? 7 /sbin/nologin

????????????????????????????7 /bin/bash


4嫁乘、pattern:AWK patterns may be one of the following:

? ? ? ? ? ? ? 空模式 : 匹配每一行

? ? ? ? ? ? ?/regular expression/ : 處理能夠匹配到的行

? ? ? ? ? ? ? relational expression :關(guān)系表達式昆婿,為真時才會被處理;

? ? ? ? ? ? ? pattern && pattern

? ? ? ? ? ? ? pattern || pattern

? ? ? ? ? ? ? pattern ? pattern : pattern

? ? ? ? ? ? ? (pattern)

? ? ? ? ? ? ? ! pattern

? ? ? ? ? ? ? /pattern1/, /pattern2/

? ? ?eg1:??~]# awk '/^root\>/{print}' /etc/passwd

????????????????root:x:0:0:root:/root:/bin/bash

? ? eg2:??~]# awk -F: '$3==0{print}' /etc/passwd

????????????????root:x:0:0:root:/root:/bin/bash

????eg3:??~]# awk -F: '$1~"^root"{print}' /etc/passwd

????????????????root:x:0:0:root:/root:/bin/bash

? ? eg4:?? ~]# awk -F: '/^root\>/,/^bin\>/{print}' /etc/passwd

????????????????root:x:0:0:root:/root:/bin/bash

????????????????bin:x:1:1:bin:/bin:/sbin/nologin

????eg5:??~]# awk -F: '(NR>=1&&NR<=2){print}' /etc/passwd

????????????????root:x:0:0:root:/root:/bin/bash

????????????????bin:x:1:1:bin:/bin:/sbin/nologin

? ? eg6:??~]# awk -F: '!(NR>=2){print}' /etc/passwd

????????????????root:x:0:0:root:/root:/bin/bash

二、awk函數(shù)用法

? ?? ? ? ? awk 函數(shù)包括內(nèi)置函數(shù)和自定義函數(shù)蜓斧,內(nèi)置函數(shù)比較常用;

? ? ? ? ? ?a.??rand() : Return a random number N, between 0 and 1, such that 0 ≤ N < 1

? ?????????? ~]# awk 'BEGIN{print rand()}'

????????????????0.237788

? ? ? ? ? b.length(string) : 顯示字符串的長度

? ?????????? ~]# awk -v tmp="helloworld" 'BEGIN{print length(tmp)}'

????????????????10

????????????~]# awk -F:? '/^root\>/{print length($1)}'? /etc/passwd

????????????????4

? ? ? ? c.??split(s, a [, r ] ])? : 以r為分隔符分割s, 并將分割后的結(jié)果保存在數(shù)組a 中 仓蛆;

? ? ? ? ? ? ##統(tǒng)計外部IP連接的個數(shù)

? ??????????~]# netstat -tan | awk '/tcp\>/{split($5,ip,":");count[ip[1]]++}END{for (i in count){print i,count[i]}}'

????????????0.0.0.0 7

? ? ? ? ? ?10.14.5.107 1

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市挎春,隨后出現(xiàn)的幾起案子看疙,更是在濱河造成了極大的恐慌豆拨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件能庆,死亡現(xiàn)場離奇詭異辽装,居然都是意外死亡,警方通過查閱死者的電腦和手機相味,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來殉挽,“玉大人丰涉,你說我怎么就攤上這事∷孤担” “怎么了一死?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長傻唾。 經(jīng)常有香客問我投慈,道長,這世上最難降的妖魔是什么冠骄? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任伪煤,我火速辦了婚禮,結(jié)果婚禮上凛辣,老公的妹妹穿的比我還像新娘抱既。我一直安慰自己,他們只是感情好扁誓,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布防泵。 她就那樣靜靜地躺著,像睡著了一般蝗敢。 火紅的嫁衣襯著肌膚如雪捷泞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天寿谴,我揣著相機與錄音锁右,去河邊找鬼。 笑死拭卿,一個胖子當著我的面吹牛骡湖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播峻厚,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼响蕴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了惠桃?” 一聲冷哼從身側(cè)響起浦夷,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤辖试,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后劈狐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體罐孝,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年肥缔,在試婚紗的時候發(fā)現(xiàn)自己被綠了莲兢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡续膳,死狀恐怖改艇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坟岔,我是刑警寧澤谒兄,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站社付,受9級特大地震影響承疲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸥咖,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一燕鸽、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扛或,春花似錦绵咱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至住涉,卻和暖如春麸锉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背舆声。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工花沉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人媳握。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓碱屁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蛾找。 傳聞我的和親對象是個殘疾皇子娩脾,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

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

  • awk命令的基本使用 [root@shellscript ~]# head -n 3 /etc/passwd | ...
    古寒飛閱讀 1,062評論 0 2
  • awk介紹awk變量printf命令:實現(xiàn)格式化輸出操作符awk patternawk actionawk數(shù)組aw...
    哈嘍別樣閱讀 1,558評論 0 4
  • awk:報告生成器,格式化文本輸出 內(nèi)容: awk介紹 awk基本用法 awk變量 awk格式化 awk操作符 a...
    BossHuang閱讀 1,453評論 0 9
  • 本章主要學習內(nèi)容awk介紹 ?awk基本用法 ?awk變量 ?awk格式化 ?awk操作符 ?awk條件判斷 ?a...
    楠人幫閱讀 1,260評論 0 8
  • 報告生成器打毛,格式化文本輸出柿赊,常用選項: -F:指明輸入時用到的字段分隔符 -v var=value:自定義變量 介...
    毛利卷卷發(fā)閱讀 517評論 0 1