sed 簡介
sed(意為流編輯器,源自英語「stream editor」的縮寫)是unix常見的命令列程式。
sed 用來把文件或字串裡面的文字經過一系列編輯命令轉換為另一種格式輸出。sed 通常用來匹配乙個或多個正規表示式的文字進行處理。
分號(;)可以用作分隔命令的指示符。
常用的sed命令
/模式/p - 印出所有匹配「模式」的行
/模式/d - 刪除所有匹配「模式」的行
s - 替換字串
s/模式/替換文字/ - 將匹配「模式」的行轉換成「替換文字」
s命令預設只替換每行匹配的第一串文字,也就是說,若每行裡有多個匹配該模式的字串,後面的將不會被s轉換。在這個情況可以用g命令來替換所有匹配的文字,如下:
s/模式/替換文字/g - 將所有匹配「模式」的字串轉換成「替換文字」
命令列下引數說明
-f - 按照指定的sed指令碼裡面的命令來進行轉換
-i - 表示將轉換結果直接插入檔案中(若不用-i,一般sed命令不會改變原文件裡的內容,而只會輸出到命令列。當然命令列輸出的內容也可以用「>」轉存到另外乙個檔案裡。)
-e - 表示在e後面的文字是正規表示式。有的版本不需要加註e選項也同樣可以在命令中使用正規表示式。
sed g - 在每一行後面增加一空行
sed 'g;g' - 在每一行後面增加兩行空行
例項說明
印出 white.dat 檔內含有 "white"字串的資料行 , 其命令如下:
sed -n -e '/white/p' white.dat
上面命令中 , 選項 -n 與編輯指令 /white/p (參照[section4.6]) 一起配合控制輸出。其中 , 選項 -n 將輸出控制權移給編輯指令;
/white/p 將資料行中含有 "white" 字串印出螢幕。
sed命令詳解
sed 是乙個精簡的 非互動式的編輯器。它能執行與編輯vi和emacs相同的編輯任務。sed編輯器不提供互動使用方式 只能在命令列輸入編輯命令 指定檔案 名,然後在螢幕上察看輸出。sed編輯器沒有破壞性。它不會修改檔案,除非用shell重定向來儲存輸出結果。預設情況下,所以的輸出都被列印到螢幕上。1...
sed命令詳解
sed編輯器逐行處理輸入,然後把結果傳送到螢幕。i選項 直接作用原始檔,原始檔將被修改。sed命令和選項 a 在當前行後新增一行或多行 c 用新文字替換當前行中的文字 d刪除行 i 在當前行之前插入文字 h把模式空間的內容複製到暫存緩衝區 h把模式空間的內容新增到緩衝區 g取出暫存緩衝區的內容,將其...
sed命令詳解
sed是stream editor的簡稱,也就是流編輯器。它一次處理一行內容,處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到檔案末尾。檔案內容並沒有 改變...