next up previous contents
Next: 變數與欄位處理 Up: awk Previous: 簡介   Contents

script基礎

一個script由 condition{procedure},condition{procedure},.....組成。 跟sed很像,找到什麼條件(pattern部份),做什麼動作(procedure部份), 有一些內部的變數可以幫我們設定一些條件。condition可以是pattern regular express或某個符合條件,這個請看邏輯運算符號與比對算符   。其中有兩個重要 的內定condition, BEGIN跟END。一個script通常是這樣

BEGIN {xxx} /re/{xxx} END{xxx}

一般寫程式,一定要有init初始化一些值,就像人有出生年月日八字一樣, 程式結束也要有處理善後的routine來處理。awk作為一個程式型態的script語言, 提供了一個general的初始與結束的處理。
    算算有幾個空白行
    $ awk 'BEGIN{x=0} /^$/{x++} END{print x}' scripts.tex
一開始設定x=0後,BEGIN後的就不在執行,然後每讀一行進來,如果是空白行就 x++,最後讀完到檔尾,印出x。

要記住在上面的例子裡,awk的變數跟c是一樣的也就是沒有錢符號的,這邊跟shell perl等script比較不一樣。

Cyril Huang 2002-06-14