1. 程式人生 > 實用技巧 >linux sed命令詳細講解

linux sed命令詳細講解

Vim 採用的是互動式文字編輯模式,你可以用鍵盤命令來互動性地插入、刪除或替換資料中的文字。但本節要講的 sed 命令不同,它採用的是流編輯模式,最明顯的特點是,在 sed 處理資料之前,需要預先提供一組規則,sed 會按照此規則來編輯資料。

sed 會根據指令碼命令來處理文字檔案中的資料,這些命令要麼從命令列中輸入,要麼儲存在一個文字檔案中,此命令執行資料的順序如下:

  1. 每次僅讀取一行內容;
  2. 根據提供的規則命令匹配並修改資料。注意,sed 預設不會直接修改原始檔資料,而是會將資料複製到緩衝區中,修改也僅限於緩衝區中的資料;
  3. 將執行結果輸出。

當一行資料匹配完成後,它會繼續讀取下一行資料,並重復這個過程,直到將檔案中所有資料處理完畢。

sed 命令的基本格式如下:

sed [選項] [指令碼命令] 檔名

表 1 sed 命令常用選項及含義
選項含義
-e 指令碼命令 該選項會將其後跟的指令碼命令新增到已有的命令中。
-f 指令碼命令檔案 該選項會將其後檔案中的指令碼命令新增到已有的命令中。
-n 預設情況下,sed 會在所有的指令碼指定執行完畢後,會自動輸出處理後的內容,而該選項會遮蔽啟動輸出,需使用 print 命令來完成輸出。
-i 此選項會直接修改原始檔,要慎用。


成功使用 sed 命令的關鍵在於掌握各式各樣的指令碼命令及格式,它能幫你定製編輯檔案的規則。

sed指令碼命令

sed s替換指令碼命令

此命令的基本格式為: