sed 與 awk 是兩個提供給使用者、程式設計師以及系統管理員的工具。sed 這個名字的由來,主要因為它是一個串流編輯器(stream editor),它擅長將一連串文字編輯動作同時應用在許多檔案上。awk 這個名字的由來,是因為取三個開發者姓氏的字首,Aho、Weinberger 以及 Kernighan,它是一個程式設計語言,讓您容易處理結構化的資料,並且產生格式化的報告。本書第二版涵蓋了 POSIX 標準的 awk,以及一些可以免費取得或商品化的 awk 版本。
本書一開始是 grep、sed 到 awk 的回顧以及入門指導,並展示其功能演進的過程。sed 與 awk 共用類似的命令列語法,並接受命令稿(script)形式的使用者指令。由於這三個程式全都使用到了 UNIX 的正規表示式(Regular Expression),所以特闢專章深入闡述其語法。
其次,本書還描述了如何撰寫 sed 命令稿。以幾個簡單的命令稿範例開講,然後,您將學到其它的基本命令(有相對應的手動編輯動作),以及具有簡單程式設計結構的進階命令。進階命令與保留空間(hold space)的運用有關;保留空間是一個預留的臨時緩衝區(temporary buffer)。
本書的第二部份已大幅修訂,其中包括 POSIX awk 以及涵蓋三個可免費取得的與三個商品化的 awk 版本。本書用了相當大的篇幅介紹 awk 的主要特性,以及如何撰寫簡單的命令稿。您還能學到:
* 常用的程式設計結構
* 如何使用 awk 的內建函式
* 如何撰寫使用者自訂函數
* awk 程式的除錯技巧
* 如何開發一個處理索引的應用,展示 awk 的威力
* 以 FTP 下載及獲得不同 awk 版本的聯絡資訊
另外,本書還雜錄了使用者所貢獻的命令稿,以展現 sed 與 awk 廣泛的應用領域。
目錄
序
第一章 編輯的「電動工具」
1.1 願您解決有趣的問題
1.2 串流編輯器
1.3 一個比對字串樣式的程式語言
1.4 駕馭sed與awk必須越過的四個障礙
第二章 瞭解「基本操作」
2.1 Awk(從Sed與Grep來看)出自Ed
2.2 命令列語法
2.3 運用sed
2.4 運用awk
2.5. 混合運用sed與awk
第三章 瞭解正規表示式的語法
3.1 何謂表示式
3.2 細說字符
3.3. 正規表示式少不了「中介字符」
第四章 撰寫 sed命令稿
4.1 命令稿中編輯命令的執行方式
4.2 對定址的全面(Global)透視
4.3 測試與儲存輸出
4.4 sed命令稿的四種類型
4.5 進入所應許的 sed 樂土(PromiSed Land)
第五章 基本的 sed 命令
5.1 sed 命令的語法
5.2 註解(Comment)
5.3 替換(Substitution)
5.4 刪除(Delete)
5.5 附加(Append)、插入(Insert)與變更(Change)
5.6 列表(List)
5.7 轉換(Transform)
5.8 印出(Print)
5.9 印出列號
5.10 下一列(Next)
5.11 讀寫檔案
5.11 試試命令引述頁面(Reference Pages)
5.12 結束(Quit)
第六章 進階的 sed 命令
6.1 內含多列資料的樣式空間
6.2. 實例探討
6.3 保留空間
6.4 進階的流程控制命令
6.5 加入比對片語的功能
第七章 撰寫 awk 命令稿
7.1 遊戲開始
7.2 Hello, World
7.3 awk 的程式編寫模型
7.4 樣式比對
7.5 紀錄與欄位
7.6 表示式
7.7 系統變數
7.8 關係算符與邏輯算符
7.9 印出編排後的結果
7.10 將參數傳入命令稿
7.11 資訊的檢索
第八章 條件式、迴圈與陣列
8.1 條件述句
8.2 迴圈
8.3 影響流程控制的其它述句
8.4 陣列
8.5 一個縮寫字處理程式
8.6 本身就是陣列的系統變數
第九章 函式
9.1算術函式
9.2字串函式
9.3撰寫您自己的函式
第十章 底層抽屜
10.1函式 getline
10.2 函式close()
10.3函式system()
10.4選單方式的命令產生器
10.5將輸出導向檔案及管線
10.6製作報表
10.7除錯
10.8限制
10.9以語法#!調用awk
第十一章 awk家族
11.1原始的awk
11.2可免費取得的awk
11.3商用awk
11.4後記
第十二章 全功能應用
12.1交談式拼字檢查器
12.2 產生編排過的索引
12.3 程式masterindex的其它細節
第十三章 命令稿雜錄
13.1 uutot.awk-簡報UUCP統計資訊
13.2 phonebill-追蹤電話的使用狀況
13.3 combine-擷取多段經UU編碼(uuencoded)的二進位檔
13.4 mailavg-檢查信箱的大小
13.5 adj-調整純文字檔的資料列
13.6 readsource-編排「程式原始碼」供troff處理
13.7 gent-取得一筆termcap資料項
13.8 plpr-lpr的前置處理器
13.9 transpose-進行矩陣的行列對換
13.10 m1-簡單的巨集處理器
附錄 A sed快速參考手冊
附錄 B awk快速參考手冊
附錄 C 第12章的補充資料
序
第一章 編輯的「電動工具」
1.1 願您解決有趣的問題
1.2 串流編輯器
1.3 一個比對字串樣式的程式語言
1.4 駕馭sed與awk必須越過的四個障礙
第二章 瞭解「基本操作」
2.1 Awk(從Sed與Grep來看)出自Ed
2.2 命令列語法
2.3 運用sed
2.4 運用awk
2.5. 混合運用sed與awk
第三章 瞭解正規表示式的語法
3.1 何謂表示式
3.2 細說字符
3.3. 正規表示式少不了「中介字符」
第四章 撰寫 sed命令稿
4.1 命令稿中編輯命令的執行方式
4.2 對定址的全面(Global)透視
4.3 測試...