學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > linux命令之a(chǎn)wk命令

linux命令之a(chǎn)wk命令

時(shí)間: 佳洲1085 分享

linux命令之a(chǎn)wk命令

  awk命令是一種編程語言,在linux系統(tǒng)中可以對(duì)文本或者數(shù)據(jù)進(jìn)行處理。下面由學(xué)習(xí)啦小編為大家整理了linux命令之a(chǎn)wk命令的相關(guān)知識(shí),希望對(duì)大家有所幫助!

  linux命令之a(chǎn)wk命令詳解

  awk是一種編程語言,用于在linux/unix下對(duì)文本和數(shù)據(jù)進(jìn)行處理。數(shù)據(jù)可以來自標(biāo)準(zhǔn)輸入(stdin)、一個(gè)或多個(gè)文件,或其它命令的輸出。它支持用戶自定義函數(shù)和動(dòng)態(tài)正則表達(dá)式等先進(jìn)功能,是linux/unix下的一個(gè)強(qiáng)大編程工具。它在命令行中使用,但更多是作為腳本來使用。awk有很多內(nèi)建的功能,比如數(shù)組、函數(shù)等,這是它和C語言的相同之處,靈活性是awk最大的優(yōu)勢(shì)。

  awk命令格式和選項(xiàng)

  語法形式

  awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s)

  常用命令選項(xiàng)

  -F fs fs指定輸入分隔符,fs可以是字符串或正則表達(dá)式,如-F:

  -v var=value 賦值一個(gè)用戶定義變量,將外部變量傳遞給awk

  -f scripfile 從腳本文件中讀取awk命令

  -m[fr] val 對(duì)val值設(shè)置內(nèi)在限制,-mf選項(xiàng)限制分配給val的最大塊數(shù)目;-mr選項(xiàng)限制記錄的最大數(shù)目。這兩個(gè)功能是Bell實(shí)驗(yàn)室版awk的擴(kuò)展功能,在標(biāo)準(zhǔn)awk中不適用。

  linux命令之a(chǎn)wk命令模式和操作

  awk腳本是由模式和操作組成的。

  模式

  模式可以是以下任意一個(gè):

  /正則表達(dá)式/:使用通配符的擴(kuò)展集。

  關(guān)系表達(dá)式:使用運(yùn)算符進(jìn)行操作,可以是字符串或數(shù)字的比較測(cè)試。

  模式匹配表達(dá)式:用運(yùn)算符~(匹配)和~!(不匹配)。

  BEGIN語句塊、pattern語句塊、END語句塊:參見awk的工作原理

  操作

  操作由一個(gè)或多個(gè)命令、函數(shù)、表達(dá)式組成,之間由換行符或分號(hào)隔開,并位于大括號(hào)內(nèi),主要部分是:

  變量或數(shù)組賦值

  輸出命令

  內(nèi)置函數(shù)

  控制流語句

  附:linux命令awk腳本基本結(jié)構(gòu)

  awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file

  一個(gè)awk腳本通常由:BEGIN語句塊、能夠使用模式匹配的通用語句塊、END語句塊3部分組成,這三個(gè)部分是可選的。任意一個(gè)部分都可以不出現(xiàn)在腳本中,腳本通常是被單引號(hào)或雙引號(hào)中,例如:

  awk 'BEGIN{ i=0 } { i++ } END{ print i }' filename

  awk "BEGIN{ i=0 } { i++ } END{ print i }" filename

3605119