| 作者:張耀仁 |
| 著作權所有﹐歡迎連結。 |
| 如欲轉載請先聯絡筆者。 |
本節中將介紹如何利用 sed 來測試正規表示式。
為什麼要利用 sed 呢? 由於在利用 grep 來測試 RE 時並無法知道到底字串的哪個部分符合 RE﹐ 對 RE 除錯的幫助不大。如果利用 sed﹐我們可以把符合 RE 的部分 特別標記起來﹐這樣就可以知道 RE 擷取到的字串是否符合我們設計時的目標。
若把尋找『cat』這個英文單字的 RE 設計成『cat』時﹐
利用 grep 來測試:
看起來沒什麼問題。再看看下一個:
乍看之下不曉得這一行裡面哪裡有『cat』。
如果要看看該 RE 究竟擷取到哪個字串時﹐
我們可以利用 sed 在符合的字串前後用一組 < 與 > 標記起來
(註:符號可以自選﹐若讀者所選擇的字元恰好是對 sed 有特殊意義的字元時﹐
必須在該字元加上反斜線-『\』):
說明如下:
| 1. | 讀進一行資料到工作區中。 |
| 2. | 對工作區內的資料依序執行編輯命令1﹐編輯命令2...。 |
| 3. | 執行完所有編輯命令後把結果送到標準輸出﹐再回到步驟 1。 |
| 1. | 第一部分為我們所設計的 RE。在此例為『cat』。 |
| 2. | 第二部分為『用來取代的字串』﹐用來替換符合 RE 的字串。 在此例為『<&>』﹐其中『<』有特殊的意義﹐ 代表符合左方 RE 的整個字串;因此『<&>』代表在符合 RE 的整個字串前後分別加上『<』與『>』。 |
| 3. | 第三個部分為選項﹐『g』代表 global 之意﹐會對整行中所有 符合 RE 的字串進行取代的動作;若不指定時則只對每行第一個 符合的字串執行取代的動作。 |