第四章 編寫sed腳本
1. undo命令可以撤銷一個命令的影響。
2. sed的基本工作原理:
【解釋】sed的工作過程中,會維護一個模式空間,即一個工作區或者臨時緩衝區,在應用編輯命令時,那裏存放單個輸入行,即包含有單個輸入行的備份,當某行完成應用編輯並輸出後,將會將下一行放入模式空間中。
3. sed命令的隱式全局特性:默認情況下,sed會將命令應用於所有行。
s/CA/California/g----------------------sed會將文件中的所有CA替換爲California
(1) 爲了解除這種限制,可以採用行地址對上下文進行限制,如:
/Sebastopol/s/CA/California/g--------------只會將包括“Sebastopol, CA”的行進行替換
(2) 地址可以指定多個,行地址可以是描述模式、行號或者行尋址符號的正則表達式。
(3) 地址規則:
♥ 若沒指定地址,則命令應用於所有行;
♥ 若只有一個地址,則命令應用於與這個地址匹配的任意行;
♥ 若指定了由逗號隔開的兩個地址,那麼命令應用於匹配第一個地址的第一行和它後面的行,知道
匹配第二個地址的行(包括此行)
♥ 若地址後面有感嘆號,那麼命令將應用於不匹配該地址的所有行。
(4) 以刪除命令d爲例解釋地址規則:
nd-----------表示刪除第n行
$d-----------$此處表示行的結束,刪除最後一行
/^$/d----------刪除空行,以正則表達式作爲地址
/^\.TS/, /^\.TE/d-------------刪除從第一個模式開始到第二個模式結束的行
(5) 使用大括號可以實現地址的嵌套
【注意格式】左大括號必須在行末,並且右大括號必須單獨佔一行,要確保在大括號後無空格!!