自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Unix awk的流程控制BEGIN和END的講解

系統(tǒng) 其他OS
在Unix awk中兩個特別的表達式,BEGIN和END,這兩者都可用于pattern中(參考前面的awk語法),提供BEGIN和END的作用是給程序賦予初始狀態(tài)和在程序結(jié)束之后執(zhí)行一些掃尾的工作。

你可能對Unix比較熟悉,但你可能對Unix awk很陌生,這一點也不奇怪,的確,與其優(yōu)秀的功能相比,awk還遠(yuǎn)沒達到它應(yīng)有的知名度。

流程控制語句是任何程序設(shè)計語言都不能缺少的部分。任何好的語言都有一些執(zhí)行流程控制的語句。Unix awk提供的完備的流程控制語句類似于C語言,這給我們編程帶來了極大的方便。

BEGIN和END:

在Unix awk中兩個特別的表達式,BEGIN和END,這兩者都可用于pattern中(參考前面的awk語法),提供BEGIN和END的作用是給程序賦予初始狀態(tài)和在程序結(jié)束之后執(zhí)行一些掃尾的工作。

任何在BEGIN之后列出的操作(在{}內(nèi))將在Unix awk開始掃描輸入之前執(zhí)行,而END之后列出的操作將在掃描完全部的輸入之后執(zhí)行。因此,通常使用BEGIN來顯示變量和預(yù)置(初始化)變量,使用END來輸出最終結(jié)果。

例:累計銷售文件xs中的銷售金額(假設(shè)銷售金額在記錄的第三字段):
$awk
'BEGIN { FS=":";print "統(tǒng)計銷售金額";total=0}
{print $3;total=total+$3;}
END {printf "銷售金額總計:%.2f",total}' sx

(注:>是shell提供的第二提示符,如要在shell程序Unix awk語句和Unix awk語言中換行,則需在行尾加反斜杠)

在這里,BEGIN預(yù)置了內(nèi)部變量FS(字段分隔符)和自定義變量total,同時在掃描之前顯示出輸出行頭。而END則在掃描完成后打印出總合計。

【編輯推薦】

  1. 關(guān)于Unix系統(tǒng)線路圖的簡單介紹
  2. Unix系統(tǒng)的心臟Unix文件系統(tǒng)
  3. 總結(jié)關(guān)于Unix系統(tǒng)相關(guān)的經(jīng)驗教訓(xùn)
  4. 對Unix系統(tǒng)發(fā)展期和現(xiàn)況的了解
  5. 學(xué)習(xí)Unix系統(tǒng)知識的一些經(jīng)驗之談
責(zé)任編輯:小霞
相關(guān)推薦

2010-05-11 12:53:58

Unix awk

2016-08-10 11:19:11

awkLinux開源

2016-08-29 20:51:16

awkLinux開源

2009-12-15 09:56:51

Ruby流程控制

2010-05-11 10:43:10

Unix awk

2010-05-11 13:33:22

Unix awk

2010-07-23 13:23:10

Perl語言

2017-05-31 17:09:52

LinuxShell命令

2024-11-01 16:05:26

2024-06-06 09:09:41

SQL循環(huán)控制命令

2010-07-23 13:46:27

Perl語言

2024-11-05 12:59:42

while 循環(huán)迭代字節(jié)碼

2011-09-08 13:53:31

Node.js

2021-05-27 09:30:51

Java流程控制

2015-07-23 15:17:37

JavaScript循環(huán)語句

2010-03-18 16:37:13

Python 程序流程

2010-04-30 16:08:20

Unix內(nèi)核

2010-05-11 11:29:11

Unix awk

2022-07-27 08:31:28

SQL開發(fā)控制

2009-12-25 09:50:14

Linux的Shell編程Shell程序設(shè)計
點贊
收藏

51CTO技術(shù)棧公眾號