Ubuntu awk概述內(nèi)建有pipe的功能
Ubuntu awk已被廣泛應(yīng)用但是也在不斷的更新,這里介紹Ubuntu awk安裝設(shè)置使用,幫助大家安裝更新Ubuntu awk系統(tǒng)。為使讀者快速掌握Ubuntu awk解題的模式及特性, 本手冊系由一些較具代表性的范例及其題解所構(gòu)成; 各范例由淺入深, 彼此間相互連貫,范例中并對所使用的Ubuntu awk語法及指令輔以必要的說明.
有關(guān)Ubuntu awk的指令, 函數(shù),...等條列式的說明則收錄于附錄中, 以利讀者往后撰寫程序時查閱. 如此編排, 可讓讀者在短時間內(nèi)順暢地學(xué)會使用Ubuntu awk來解決問題. 建議讀者循著范例上機實習(xí), 以加深學(xué)習(xí)效果.
讀者宜先具備下列背景 :
[a.] UNIX 環(huán)境下的簡單操作及基本概念. 例如 : 文件編輯, 文件復(fù)制 及 管道, 輸入/輸出重定向 等概念 [b.] C 語言的基本語法及流程控制指令. (Ubuntu awk 指令并不多, 且其中之大部分與 C語言中之用法一致, 本手冊中對該類指令之語法及特性不再加以繁冗的說明, 讀者若欲深究,可自行翻閱相關(guān)的 C 語言書籍)
Ubuntu awk概述
為什么使用Ubuntu awk Ubuntu awk 是一種程序語言. 它具有一般程序語言常見的功能. 因Ubuntu awk語言具有某些特點, 如 : 使用直譯器(Interpreter)不需先行編譯; 變量無類型之分(Typeless), 可使用文字當(dāng)數(shù)組的下標(biāo)(Associative Array)...等特色.
因此, 使用Ubuntu awk撰寫程序比起使用其它語言更簡潔便利且節(jié)省時間. Ubuntu awk還具有一些內(nèi)建功能, 使得Ubuntu awk擅于處理具數(shù)據(jù)行(Record), 字段(Field)型態(tài)的資料;
此外, Ubuntu awk內(nèi)建有pipe的功能, 可將處理中的數(shù)據(jù)傳送給外部的 Shell命令加以處理, 再將Shell命令處理后的數(shù)據(jù)傳回Ubuntu awk程序, 這個特點也使得Ubuntu awk程序很容易使用系統(tǒng)資源.
由于Ubuntu awk具有上述特色, 在問題處理的過程中, 可輕易使用Ubuntu awk來撰寫一些小工具; 這些小工具并非用來解決整個大問題,它們只扮演解決個別問題過程的某些角色, 可藉由Shell所提供的pipe將數(shù)據(jù)按需要傳送給不同的小工具進行處理, 以解決整個大問題.
這種解題方式, 使得這些小工具可因不同需求而被重復(fù)組合及重用(reuse); 也可藉此方式來先行測試大程序原型的可行性與正確性, 將來若需要較高的執(zhí)行速度時再用C語言來改寫.這是Ubuntu awk最常被應(yīng)用之處.
若能常常如此處理問題, 讀者可以以更高的角度來思考抽象的問題, 而不會被拘泥于細(xì)節(jié)的部份. 本手冊為Ubuntu awk入門的學(xué)習(xí)指引, 其內(nèi)容將先強調(diào)如何撰寫Ubuntu awk程序,未列入進一步解題方式的應(yīng)用實例, 這部分將留待UNIX進階手冊中再行討論.
如何取得Ubuntu awk 一般的UNIX操作系統(tǒng), 本身即附有Ubuntu awk. 不同的UNIX操作系統(tǒng) 所附的Ubuntu awk其版本亦不盡相同. 若讀者所使用的系統(tǒng)上未附有Ubuntu awk, 可透過 anonymous ftp 到下列地方取得 :
- phi.sinica.edu.tw:/pub/gnu
- ftp.edu.tw:/UNIX/gnu
- prep.ai.mit.edu:/pub/gnu
Ubuntu awk如何工作 為便于解釋Ubuntu awk程序架構(gòu), 及有關(guān)術(shù)語(terminology), 先以一個員工薪資檔(emp.dat ), 來加以介紹.
- A125 Jenny 100 210
- A341 Dan 110 215
- P158 Max 130 209
- P148 John 125 220
- A123 Linda 95 210
文件中各字段依次為 員工ID, 姓名, 薪資率,及 實際工時. ID中的第一碼為部門識別碼. "A","P"分別表示"組裝"及"包裝"部門. 本小節(jié)著重于說明Ubuntu awk程序的主要架構(gòu)及工作原理, 并對一些重要的名詞輔以必要的解釋. 由這部分內(nèi)容, 讀者可體會出Ubuntu awk語言的主要精神及Ubuntu awk與其它語程序言的差異處. 為便于說明, 以條列方式說明于后.
名詞定義
l 數(shù)據(jù)行: Ubuntu awk從數(shù)據(jù)文件上讀取數(shù)據(jù)的基本單位.以上列文件emp.dat為例, Ubuntu awk讀入的
- 第一筆數(shù)據(jù)行是 "A125 Jenny 100 210"
- 第二筆數(shù)據(jù)行是 "A341 Dan 110 215"
一般而言, 一個 數(shù)據(jù)行 就相當(dāng)于數(shù)據(jù)文件上的一行資料. (參考 : 附錄 B 內(nèi)建變量"RS" )
l字段(Field) : 為數(shù)據(jù)行上被分隔開的子字符串. 以數(shù)據(jù)行"A125 Jenny 100 210"為例, 第一欄 第二欄 第三欄 第四欄 "A125" "Jenny" 100 210 一般是以空格符來分隔相鄰的字段. ( 參考 : 附錄 D 內(nèi)建變量"FS" ) .
【編輯推薦】