awk簡(jiǎn)介

本文參考awk英文Tutorial和三十分鐘學(xué)會(huì)awk惦银,對(duì)awk做了一個(gè)非常簡(jiǎn)單的介紹握侧,如果需要更詳細(xì)的用法可以去看上面的鏈接趟济。

awk是一種編程語(yǔ)言,用于在linux/unix下對(duì)文本和數(shù)據(jù)進(jìn)行處理。在linux中,grep 更適合單純的查找或匹配文本, sed 更適合編輯匹配到的文本, awk 更適合格式化文本,對(duì)文本進(jìn)行較復(fù)雜格式處理。

awk把文件逐行讀入检吆,然后以空格為默認(rèn)分隔符將每行切片,切開(kāi)的部分再進(jìn)行各種處理程储。

基本語(yǔ)法

awk的基本語(yǔ)法如下:
awk 動(dòng)作 文件名

awk [options] 'pattern{action}' file

pattern 表示 AWK 在數(shù)據(jù)中查找的內(nèi)容(就是要表示的正則表達(dá)式)蹭沛,用斜杠括起來(lái)。
action 是在找到匹配內(nèi)容時(shí)所執(zhí)行的一系列命令章鲤。
awk會(huì)根據(jù)空格和制表符摊灭,將每一行分成若干字段,依次用$1败徊、$2帚呼、$3代表第一個(gè)字段、第二個(gè)字段皱蹦、第三個(gè)字段等等煤杀。

舉個(gè)例子。awk '{print $5}' demo.txt 沪哺,表示輸出信息的第五列沈自。
$*表示第*列。
$0表示當(dāng)前整個(gè)行辜妓。
$NF為最后一列枯途。

pattern

pattern是條件,符合這個(gè)條件的行才會(huì)被繼續(xù)處理籍滴。

  1. BEGIN語(yǔ)句塊:在程序開(kāi)始時(shí)執(zhí)行酪夷,它只執(zhí)行一次,在這里可以初始化變量.BEGIN是AWK的關(guān)鍵字孽惰,因此它必須為大寫晚岭,注意,這個(gè)語(yǔ)句塊是可選的勋功。
  2. BODY語(yǔ)句塊:此塊中的命令會(huì)對(duì)輸入的每一行執(zhí)行坦报,我們也可以通過(guò)提供模式來(lái)控制這種行為辅甥。注意,BODY語(yǔ)句塊沒(méi)有關(guān)鍵字燎竖。
  3. END語(yǔ)句塊:在程序的最后執(zhí)行,END是AWK的關(guān)鍵字要销,因此必須為大寫构回,它也是可選的。

options

-F設(shè)置輸入分隔符疏咐。awk默認(rèn)使用空格作為分隔符纤掸,連續(xù)多個(gè)空格算作一個(gè)。如果用其他分隔符浑塞,可以用-F參數(shù)制定分隔符為冒號(hào)借跪。比如:awk -F ':' '{print $5}' demo.txt

可以用-v FS='#'來(lái)指定輸入分隔符酌壕,-v OFS='--' 來(lái)指定輸出分隔符(參考下面的內(nèi)置變量)掏愁。

action

awk '{print $1 $2}' 表示連接在一起輸出。
awk '{print $1,$2}' 表示用分隔符隔開(kāi)輸出卵牍。

variable

內(nèi)置變量:FS(輸入分隔符果港,默認(rèn)是空格和制表符)
OFS(輸出分隔符,默認(rèn)為空格)
RS(輸入時(shí)行分割符糊昙,默認(rèn)為換行符)
ORS(輸出時(shí)行分割符辛掠,默認(rèn)為換行符)
NF(當(dāng)前行被分隔成幾列)
NR(當(dāng)前處理的行號(hào))
FILENAME(當(dāng)前文件名)
ARGC(命令行參數(shù)個(gè)數(shù))
ARGV(命令行參數(shù)的數(shù)組)
FNR(各文件分別記數(shù)的行號(hào),處理>1文件時(shí))释牺。

內(nèi)置變量不需要$來(lái)調(diào)用萝衩。其中,ARGV[0] = awk没咙。之后是其他的參數(shù)(files)猩谊。

自定義變量有兩種方法:

  1. -v 變量名 = 變量的值 (區(qū)分大小寫)。
  2. 在{}中定義祭刚。

函數(shù)

awk還提供了一些內(nèi)置函數(shù)预柒,方便對(duì)原始數(shù)據(jù)的處理。
內(nèi)置函數(shù)的列表可以查看這里袁梗。

使用腳本文件

awk [options] -f file ....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末宜鸯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子遮怜,更是在濱河造成了極大的恐慌淋袖,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锯梁,死亡現(xiàn)場(chǎng)離奇詭異即碗,居然都是意外死亡焰情,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門剥懒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)内舟,“玉大人,你說(shuō)我怎么就攤上這事初橘⊙橛危” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵保檐,是天一觀的道長(zhǎng)耕蝉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)夜只,這世上最難降的妖魔是什么垒在? 我笑而不...
    開(kāi)封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮扔亥,結(jié)果婚禮上场躯,老公的妹妹穿的比我還像新娘。我一直安慰自己旅挤,他們只是感情好推盛,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著谦铃,像睡著了一般耘成。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驹闰,一...
    開(kāi)封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天瘪菌,我揣著相機(jī)與錄音,去河邊找鬼嘹朗。 笑死师妙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的屹培。 我是一名探鬼主播默穴,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼褪秀!你這毒婦竟也來(lái)了蓄诽?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤媒吗,失蹤者是張志新(化名)和其女友劉穎仑氛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锯岖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年介袜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片出吹。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡遇伞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捶牢,到底是詐尸還是另有隱情鸠珠,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布叫确,位于F島的核電站,受9級(jí)特大地震影響芍锦,放射性物質(zhì)發(fā)生泄漏竹勉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一娄琉、第九天 我趴在偏房一處隱蔽的房頂上張望次乓。 院中可真熱鬧,春花似錦孽水、人聲如沸票腰。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杏慰。三九已至,卻和暖如春炼鞠,著一層夾襖步出監(jiān)牢的瞬間缘滥,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工谒主, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留朝扼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓霎肯,卻偏偏與公主長(zhǎng)得像擎颖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子观游,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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

  • 一搂捧、systemd的新特性及unit常見(jiàn)類型 systemd即為system daemon,是Centos 7上用...
    煙雨江南_e5eb閱讀 1,089評(píng)論 0 0
  • awk介紹awk變量printf命令:實(shí)現(xiàn)格式化輸出操作符awk patternawk actionawk數(shù)組aw...
    哈嘍別樣閱讀 1,549評(píng)論 0 4
  • 轉(zhuǎn)載 原文的排版和內(nèi)容都更加友好,并且詳細(xì),我只是在這里貼出了一部分留作自己以后參考和學(xué)習(xí),如希望更詳細(xì)了解AWK...
    XKirk閱讀 3,188評(píng)論 2 25
  • awk: grep,sed,awk grep:文本過(guò)濾 sed:文本編輯 awk:文本格式化工具懂缕; 1 什么是aw...
    木林森閱讀 1,764評(píng)論 0 16
  • awk:報(bào)告生成器异旧,格式化文本輸出 內(nèi)容: awk介紹 awk基本用法 awk變量 awk格式化 awk操作符 a...
    BossHuang閱讀 1,452評(píng)論 0 9