Unix awk的調(diào)用方式方面的知識介紹
Unix操作系統(tǒng)有很多值得學(xué)習(xí)的地方,我們今天來講解一下Unix awk的調(diào)用方式方面的知識。我們曾經(jīng)說過,Unix awk提供了適應(yīng)多種需要的不同解決方案,它們是:
一、Unix awk命令行,你可以象使用普通Unix命令一樣使用awk,在命令行中你也可以使用awk程序設(shè)計語言,雖然awk支持多行的錄入,但是錄入長長的命令行并保證其正確無誤卻是一件令人頭疼的事,因此,這種方法一般只用于解決簡單的問題。當(dāng)然,你也可以在shell script程序中引用awk命令行甚至awk程序腳本。
二、使用-f選項調(diào)用Unix awk程序。awk允許將一段awk程序?qū)懭胍粋€文本文件,然后在awk命令行中用-f選項調(diào)用并執(zhí)行這段程序。具體的方法我們將在后面的awk語法中講到。
三、利用命令解釋器調(diào)用awk程序:利用Unix支持的命令解釋器功能,我們可以將一段awk程序?qū)懭胛谋疚募?,然后在它?**行加上:
#!/bin/awk -f
并賦予這個文本文件以執(zhí)行的權(quán)限。這樣做之后,你就可以在命令行中用類似于下面這樣的方式調(diào)用并執(zhí)行這段awk程序了。
$awk腳本文本名 待處理文件
Unix awk的語法:
與其它Unix命令一樣,Unix awk擁有自己的語法:
awk [ -F re] [parameter...] ['prog'] [-f progfile][in_file...]
參數(shù)說明:
-F re:允許Unix awk更改其字段分隔符。
parameter: 該參數(shù)幫助為不同的變量賦值。
'prog': awk的程序語句段。這個語句段必須用單拓號:'和'括起,以防被shell解釋。這個程序語句段的標(biāo)準(zhǔn)形式為:
'pattern {action}'
其中pattern參數(shù)可以是egrep正則表達(dá)式中的任何一個,它可以使用語法/re/再加上一些樣式匹配技巧構(gòu)成。與sed類似,你也可以使用","分開兩樣式以選擇某個范圍。
關(guān)于匹配的細(xì)節(jié),你可以參考附錄,如果仍不懂的話,找本Unix書學(xué)學(xué)grep和sed(本人是在學(xué)習(xí)ed時掌握匹配技術(shù)的)。action參數(shù)總是被大括號包圍,它由一系統(tǒng)Unix awk語句組成,各語句之間用";"分隔。
Unix awk解釋它們,并在pattern給定的樣式匹配的記錄上執(zhí)行其操作。與shell類似,你也可以使用“#”作為注釋符,它使“#”到行尾的內(nèi)容成為注釋,在解釋執(zhí)行時,它們將被忽略。
你可以省略pattern和action之一,但不能兩者同時省略,當(dāng)省略pattern時沒有樣式匹配,表示對所有行(記錄)均執(zhí)行操作,省略action時執(zhí)行缺省的操作――在標(biāo)準(zhǔn)輸出上顯示。
-f progfile:允許awk調(diào)用并執(zhí)行progfile指定有程序文件。progfile是一個文本文件,他必須符合Unix awk的語法。
in_file:awk的輸入文件,Unix awk允許對多個輸入文件進(jìn)行處理。值得注意的是awk不修改輸入文件。如果未指定輸入文件,awk將接受標(biāo)準(zhǔn)輸入,并將結(jié)果顯示在標(biāo)準(zhǔn)輸出上。awk支持輸入輸出重定向。
【編輯推薦】