在linux awk的while、do-while和for語句中允許使用break,continue語句來控制流程走向,也允許使用exit這樣的語句來退出。break中斷當前正在執行的迴圈並跳到迴圈外執行下一條語句。if是流程選擇用法。awk中,流程控制語句,語法結構,與c語言型別。有了這些語句,其實很多shell程式都可以交給awk,而且效能是非常快的。下面是各個語句用法。
if(表示式)
else
if(表示式)
else
//說明: 這裡的if表示如果,else表示否則
示例:
awk 'begin裡面的內容
print "very good";
} else
if(test>60)裡面的內容
print "good";
} else的內容
print "no pass";
}//說明:每條命令語句後面可以用;分號結尾。
while(表示式)
示例:
awk 'begin裡面的內容,直到test不滿足條件;
total+=i;
i++;
} print total; //列印total的值;
}'
awk 'begin裡的內容。
total+=i;
} print total; //列印total的值
}'
do while(條件)
示例:
awk 'begin while(i
<=100) //1. 如果i
<=100,執行{}裡的內容
print
total; //列印total的值
}'
其他語句
陣列是awk的靈魂,處理文字中最不能少的就是它的陣列處理。因為陣列索引(下標)可以是數字和字串在awk中陣列叫做關聯陣列(associative數字做陣列索引(下標):arrays)。awk 中的陣列不必提前宣告,也不必宣告大小。陣列元素用0或空字串來初始化,這根據上下文而定。
array[1]="sun"
array[2]="kai"
字串做陣列索引(下標):
array["first"]="www"
array["last"]="name"
array["birth"]="1987"
說明:使用中print array[1]會列印出sun;使用print讀取陣列的值array[2]會列印出kai;使用print[「birth」]會得到1987。
; } //輸出的順序是隨機的
; } //len是陣列的長度
得到陣列長度:
awk 'begin'
4 4
length返回字串以及陣列長度,split進行分割字串為陣列,也會返回分割得到陣列長度。
awk 'begin'
4
說明:asort對陣列進行排序,返回陣列長度
輸出陣列內容(無序,有序輸出):
4 test
1it2is
3 a
說明:for…in輸出,因為陣列是關聯陣列,預設是無序的。所以通過for…in得到是無序的陣列。如果需要得到有序陣列,需要通過下標獲得。
1 test
2it3is
5 test
注意: 陣列下標是從1開始,與c陣列不一樣
awk流程控制
本案例要求了解awk的流程控制操作,可自行設定awk語句來驗證一下操作 實現此案例需要按照如下步驟進行。1 單分支 統計 etc passwd檔案中uid小於或等於1000的使用者個數 root svr5 awk f end etc passwd 39統計 etc passwd檔案中uid大於100...
Python流程控制語句流程控制語句
流程控制語句1 if語句 if 語句基本用法 if 表示式 語句塊其中,表示式可以是乙個單純的布林值或變數,也可以是比較表示式或邏輯表示式,如果表示式為真,則執行 語句塊 如果表示式的值為假,就跳 過 語句塊 繼續執行後面的語句。2 if else語句 if else 語句基本用法 if 表示式 語...
awk系列 在awk中如何使用流程控制語句
當你回顧所有到目前為止我們已經覆蓋的 awk 例項,從 awk 系列的開始,你會注意到各種例項的所有指令是順序執行的,即乙個接乙個地執行。但在某些情況下,我們可能希望基於一些條件進行文字過濾操作,即流程控制語句允許的那些語句。在 awk 程式設計中有各種各樣的流程控制語句,其中包括 然而,對於本系列...