awk基礎(chǔ)01-基本用法

什么是awk

? ? awk 是一門解釋型的編程語言篮赢,支持條件判斷齿椅,數(shù)組、循環(huán)等功能启泣』两牛可用于文本處理、輸出格式化的文本信息寥茫、執(zhí)行數(shù)學(xué)運(yùn)算遣蚀、字符串等操作。
? ? awk在處理文件時(shí)按進(jìn)行逐行處理纱耻,即每次處理輸入的一整行芭梯,完成后再處理下一行,如此循環(huán)直到全部處理完畢弄喘,默認(rèn)以換行符作為一行的終結(jié)玖喘。而在一行中又默認(rèn)使用空格做為每一列的分隔符,將一行分割為多列蘑志。如下所示:

awk01.jpg
$0:代表輸入的一整行
$1~$n:代表一行被分割后的列序號累奈,$1則代表為第一列,依次類推

工作原理

  • 第一步
    ? awk讀取一條記錄作為輸入急但,并將這條記錄傳遞給內(nèi)部變量 $0
  • 第二步
    ? 記錄被分隔符分割成多個(gè)字段澎媒,每一個(gè)字段被存儲(chǔ)到指定編號的變量中,從 $1 開始波桩〗渑可使用 -F 指定分隔符,awk默認(rèn)分隔符為空格
  • 第三步
    ? 對于每一條記錄镐躲,按照給定的pattern進(jìn)行匹配柏卤,匹配成功則執(zhí)行對應(yīng)的action,匹配失敗匀油,則不執(zhí)行action缘缚。
  • 第四步
    ? 重復(fù)第1~3步直到結(jié)束

基本語法

awk [options] 'Pattern { Action }' File

常用選項(xiàng)

常用選項(xiàng)如下所示:

選項(xiàng) 說明
-F fs 指定分隔符
-v var=val 自定義定義變量并進(jìn)行賦值
-f program-file 從文件中讀入操作
-r,--re-interval 支持以{x,y}的正則匹配
-h 顯示幫助信息

Pattern

? ? awk 中模式可以理解為在處理文本行前需要滿足的條件,如果滿足則進(jìn)行處理敌蚜。常用的模式(Pattern)如下所示:

  • BEGIN { 語句 }:指定在處理文本之前需要進(jìn)行的操作
  • END { 語句 }: 指定在文件文本之后需要進(jìn)行的操作
  • 表達(dá)式 { 語句 }:對于表達(dá)式為真時(shí)需要進(jìn)行的操作
  • /正則表達(dá)式/ { 語句 }:對正則表達(dá)式能匹配的結(jié)果需要進(jìn)行的操作

如果遇到 / 桥滨,則需要進(jìn)行轉(zhuǎn)義操作,使用 /
如果正則需要使用{x,y},則需要使用
--posix
--re-interval選項(xiàng)

  • 組合模式 { 語句 }:通過與(&&)齐媒、或(||)和非(|)或者{}組合的多個(gè)表達(dá)式蒲每,需要進(jìn)行的操作
  • 模式1,模式2 { 語句 }:范圍模式(range pattern) 匹配從與模式1匹配的行到與模式2相匹配的行(包含該行)之間所有的行需要進(jìn)行操作

? ? awk 支持的條件運(yùn)算符如下所示:

運(yùn)算符 含義 示例
< 小于 x < y
<= 小于等于 x <= y
> 大于 x > y
>= 大于等于 x >= y
== 等于 x == y
!= 不等于 x != y
~ 與正則匹配則為真 x ~/正則/
!~ 與正則不匹配則為真 x !~/正則/

1喻括、常規(guī)用法:

awk02.jpg

2邀杏、正則表達(dá)式用法:

awk03.jpg

Action

? ? awk 中的操作(Action)其主要作用是對符合模式的數(shù)據(jù)進(jìn)行的命令操作,如顯示打印等唬血。最常用的就是print望蜡。

Action的 { } 必須與其對應(yīng)的模式處理同一行

Action常用組合方式如下所示:

  • 方式一:在這種方式中,各個(gè)動(dòng)作間是順序執(zhí)行拷恨,即執(zhí)行完成第一個(gè)動(dòng)作后脖律,再執(zhí)行第二個(gè),等最后一個(gè)動(dòng)作執(zhí)行完成后腕侄,再重復(fù)第一個(gè)動(dòng)作小泉,如此循環(huán)直到結(jié)束。因此輸出的結(jié)果也是每個(gè)動(dòng)作一行

awk '{print $1} {print $2}'

  • 方式二:執(zhí)行效果同方式一

awk '{print $1 ; print $2}'

  • 方式三:將所的輸出結(jié)果全部打印輸出到一行上面

awk '{print $1 , $2}'

以上三種用法示例如下所示:

awk04.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冕杠,一起剝皮案震驚了整個(gè)濱河市微姊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌分预,老刑警劉巖兢交,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異噪舀,居然都是意外死亡魁淳,警方通過查閱死者的電腦和手機(jī)飘诗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門与倡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人昆稿,你說我怎么就攤上這事纺座。” “怎么了溉潭?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵净响,是天一觀的道長。 經(jīng)常有香客問我喳瓣,道長馋贤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任畏陕,我火速辦了婚禮配乓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己犹芹,他們只是感情好崎页,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腰埂,像睡著了一般飒焦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上屿笼,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天牺荠,我揣著相機(jī)與錄音,去河邊找鬼刁卜。 笑死志电,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蛔趴。 我是一名探鬼主播挑辆,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼孝情!你這毒婦竟也來了鱼蝉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤箫荡,失蹤者是張志新(化名)和其女友劉穎魁亦,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體羔挡,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洁奈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年宣决,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了仅孩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡例获,死狀恐怖低矮,靈堂內(nèi)的尸體忽然破棺而出印叁,到底是詐尸還是另有隱情,我是刑警寧澤军掂,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布轮蜕,位于F島的核電站,受9級特大地震影響蝗锥,放射性物質(zhì)發(fā)生泄漏跃洛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一终议、第九天 我趴在偏房一處隱蔽的房頂上張望汇竭。 院中可真熱鬧闲延,春花似錦、人聲如沸韩玩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽找颓。三九已至合愈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間击狮,已是汗流浹背佛析。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彪蓬,地道東北人寸莫。 一個(gè)月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像档冬,于是被迫代替她去往敵國和親膘茎。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評論 2 350

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

  • 轉(zhuǎn)載 原文的排版和內(nèi)容都更加友好,并且詳細(xì),我只是在這里貼出了一部分留作自己以后參考和學(xué)習(xí),如希望更詳細(xì)了解AWK...
    XKirk閱讀 3,196評論 2 25
  • awk:報(bào)告生成器酷誓,格式化文本輸出 內(nèi)容: awk介紹 awk基本用法 awk變量 awk格式化 awk操作符 a...
    BossHuang閱讀 1,453評論 0 9
  • awk: grep,sed,awk grep:文本過濾 sed:文本編輯 awk:文本格式化工具披坏; 1 什么是aw...
    木林森閱讀 1,769評論 0 16
  • 一,awk簡介 awk,文本處理三劍客之一盐数,它的名稱得自于它的三個(gè)創(chuàng)始人Alfred Aho 棒拂、Peter Wei...
    千紙鶴V閱讀 2,403評論 0 6
  • 石、砂玫氢、土 水帚屉、風(fēng)
    亦1閱讀 205評論 0 0