快速連接文章

請輸入Linux command

會員登入






遺失密碼
尚未註冊? 註冊

票選專區

您希望引用的 wiki 語系?
 

RSS

PayPal Donation

Enter Amount:

IDigitalNet Newsletter


E-Mail Address:
請選擇訂閱選項:
sed 列印 E-mail
作者 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 )
 
< 前一個