你也許仍然會問,我為什麼要使用Unix awk?使用Unix awk的第一個理由是基於文本的樣式掃描和處理是我們經常做的工作,awk所做的工作有些象數據庫,但與數據庫不同的是,它處理的是文本文件,這些文件沒有專門的存儲格式,普通的人們就能編輯、閱讀、理解和處理它們。
而數據庫文件往往具有特殊的存儲格式,這使得它們必須用數據庫處理程序來處理它們。
既然這種類似於數據庫的處理工作我們經常會遇到,我們就應當找到處理它們的簡便易行的方法,Unix有很多這方面的工具,例如sed 、grep、sort以及find等等,Unix awk是其中十分優秀的一種。
使用Unix awk的第二個理由是awk是一個簡單的工具,當然這是相對於其強大的功能來說的。的確,Unix有許多優秀的工具,例如Unix天然的開發工具C語言及其延續C++就非常的優秀。
但相對於它們來說,Unix awk完成同樣的功能要方便和簡捷得多。這首先是因為awk提供了適應多種需要的解決方案:從解決簡單問題的awk命令行到復雜而精巧的awk程序設計語言,這樣做的好處是,你可以不必用復雜的方法去解決本來很簡單的問題。
例如,你可以用一個命令行解決簡單的問題,而C不行,即使一個再簡單的程序,C語言也必須經過編寫、編譯的全過程。其次,awk本身是解釋執行的,這就使得Unix awk程序不必經過編譯的過程,同時,這也使得它與shell script程序能夠很好的契合。
最後,Unix awk本身較C語言簡單,雖然awk吸收了C語言很多優秀的成分,熟悉C語言會對學習awk有很大的幫助,但awk本身不須要會使用C語言――一種功能強大但需要大量時間學習才能掌握其技巧的開發工具。
使用Unix awk的第三個理由是awk是一個容易獲得的工具。與C和C++語言不同,awk只有一個文件(/bin/awk),而且幾乎每個版本的Unix都提供各自版本的awk,你完全不必費心去想如何獲得awk。
但C語言卻不是這樣,雖然C語言是Unix天然的開發工具,但這個開發工具卻是單獨發行的,換言之,你必須為你的Unix版本的C語言開發工具單獨付費(當然使用D版者除外),獲得並安裝它,然後你才可以使用它。
基於以上理由,再加上Unix awk強大的功能,我們有理由說,如果你要處理與文本樣式掃描相關的工作,awk應該是你的第一選擇。在這裡有一個可遵循的一般原則:如果你用普通的shell工具或shell script有困難的話,試試Unix awk,如果awk仍不能解決問題,則便用C語言,如果C語言仍然失敗,則移至C++。