這本書是專門講解sed與awk的用法,講得很詳細,挺好的。
第2章 瞭解基本操作
1. awk與sed
2. sed與ed的差別
sed是隱式是全域命令,而ed只是影響到當前行
注意:理解ed中的當前行定址與sed中全域行定址之間的區別是很重要的。在ed中,使用定址擴大受命令列影響的行數;在sed中,使用定址限制受命令列影響的行數
3. awk簡介
4. sed與awk命令列文法
5. 使用sed
sed的命令中,命令可以用單引號引起來,也可以不用,但是當命令中有空格的時候必須使用單引號。當命令列上給出多個指令時需要-e選項,它告訴sed將下一參數解釋為指令。
6. 在sed中使用指令檔
需要使用-f命令,sed會將指令檔中的命令應用到輸入檔案的每一行。
7. 運行awk
8. sed與awk的命令列選項
第3章 瞭解Regex
1.POSIX字元
Class Matching Characters
[:alnum:] Printable characters (includes whitespace)
[:alpha:] Alphabetic characters
[:blank:] Space and tab characters
[:cntrl:] Control characters
[:digit:] Numeric characters
[:graph:] Printable and visible (non-space) characters
[:lower:] Lowercase characters
[:print:] Alphanumeric characters
[:punct:] Punctuation characters
[:space:] Whitespace characters
[:upper:] Uppercase characters
[:xdigit:] Hexadecimal digits
2. 常用Regex
^[:space:]*$ 只含有空白的行
^$ 空行
^.*$ 整行
在sed(和grep)中,只有當^和$分別出現在Regex的開始或結尾時才是特殊的。
3. 在Regex中指定跨度並決定跨度長度的元字元
4. 有用的Regex
第4章 編寫sed指令碼
1. sed的定址方式
2. sed中使用分組命令
第5章 基本sed命令
1. 替換命令
2. 替換元字元
3. 列表
第7章 編寫awk指令碼
1.awk程式設計模型
2. 記錄和欄位
第8章 條件、迴圈和數組
1.從C借鑒的條件和迴圈語句
if/if-elese條件選擇語句
條件操作符?:
while迴圈
do-while迴圈
for迴圈:利用其進行遍曆記錄的所有欄位
break語句:跳出最近的迴圈
continue:提前結束當前迴圈
2. 數組
關聯陣列
awk中,所有的數組都是關聯陣列,關聯陣列的下標是字串,即使你給定數字,awk也會將其轉為字串。
測試數組中的成員資格
3. 用split建立數組
4. 刪除數組元素
5. 系統變數數組
6. 環境變數數組
第9章 函數
1. 算術函數
三角函數,整數函數int()
2. 隨機數產生
3. 字串函數
第10章 底部抽屜
1. getline命令
2. close函數
用於關閉開啟的檔案和管道
3. System函數
4. 直接向檔案和管道輸出