|
作者 Sonia
|
|
sed 串流編輯器, sed 作為過濾器的用途, 文字從標準輸入進入, 經過編輯器後, 由標準輸出顯示. sed 具有程式設計的能力. sed 命令稿可以是一個命令, 也可以是一串命令.
-e cmd 接受多重指令,每一個指令前要加 -e 參數。
-f 將多重的指令寫在一個檔案中,並直接叫用那個檔案
sed 處理文字的過程分為定址與編輯命令兩部份,定址可用來標示要處理的文字在何處,而編輯命令用來執行處理文字。sed 對每列文字分開處理,如果以 -e 指定多道指令,sed 會依序執行到目前這列後,才執行下一列文字。
定址: 用於決定要處理哪些文字 (1) 列號 'n,m' 代表第n列。n,m代表n到m列。$代表最後一列。n~m代表第n列開始,每格m列。$ 號代表最後一列。 (2) /正規表示法/ 一個加上斜線的正規表示式 /regex/, 用以表示符合某正規表示法的哪幾列。正規表示法須放在 / 與 / 中間。如/[0-9]/
編輯命令 (1) d 刪除整列文字 (2) y /原文/後文 y類似tr命令,例如y/abc/123 是指將a換成1,b換成2,c換成3 (3) s/原文/後文/[旗標] 進行文字替換。 將符合21407;文30340;文字替換成24460;文□12290;S命令可用的旗標如下: g替換與原文相同的每筆文字。 n替換與原文相同的第n筆文字。預設是替換第一筆。 w file將替換過的文字輸出到file中。 沒有可以沒有旗標。就是用基本的 s/原文/後文/ 格式
範例: (1)刪除file中第三行到第五行 $sed '3,5d' file (2)刪除file中所有以井字號#為首的每一列 $sed '/^#/d' file (3)將井字號#寫到file中的空白列 $sed 's/^$/#' file (4)將井字號#寫到file中的空白列,並將處理過的列儲存到檔案test中 $sed 's/^$/#/w' test (5)移除file中所有的雙引號 $sed 's/"//g' file
|
|
最後更新 ( 2006/03/05, Sunday )
|