《Sed 和 Awk》(第二版)學習系列之第四章

 

第四章 編寫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) 使用大括號可以實現地址的嵌套

     【注意格式】左大括號必須在行末,並且右大括號必須單獨佔一行,要確保在大括號後無空格!!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章