Next: 變數與欄位處理
Up: awk
Previous: 簡介
  Contents
一個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