sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用,功能不同凡響。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。
sed的選項、命令、替換標記
命令格式
sed [options] 'command' file(s)sed [options] -f scriptfile file(s)
選項
-e<script>或--expression=<script>:以選項中的指定的script來處理輸入的文本文件;-f<script文件>或--file=<script文件>:以選項中指定的script文件來處理輸入的文本文件;-h或--help:顯示幫助;-n或--quiet或——silent:僅顯示script處理后的結果;-V或--version:顯示版本信息。
參數
文件:指定待處理的文本文件列表。
sed命令
a/ 在當前行下面插入文本。i/ 在當前行上面插入文本。c/ 把選定的行改為新的文本。d 刪除,刪除選擇的行。D 刪除模板塊的第一行。s 替換指定字符h 拷貝模板塊的內容到內存中的緩沖區。H 追加模板塊的內容到內存中的緩沖區。g 獲得內存緩沖區的內容,并替代當前模板塊中的文本。G 獲得內存緩沖區的內容,并追加到當前模板塊文本的后面。l 列表不能打印字符的清單。n 讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令。N 追加下一個輸入行到模板塊后面并在二者間嵌入一個新行,改變當前行號碼。p 打印模板塊的行。P(大寫) 打印模板塊的第一行。q 退出Sed。b lable 分支到腳本中帶有標記的地方,如果分支不存在則分支到腳本的末尾。r file 從file中讀行。t label if分支,從最后一行開始,條件一旦滿足或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾。T label 錯誤分支,從最后一行開始,一旦發生錯誤或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾。w file 寫并追加模板塊到file末尾。 W file 寫并追加模板塊的第一行到file末尾。 ! 表示后面的命令對所有沒有被選定的行發生作用。 = 打印當前行號碼。 # 把注釋擴展到下一個換行符以前。
sed替換標記
g 表示行內全面替換。 p 表示打印行。 w 表示把行寫入一個文件。 x 表示互換模板塊中的文本和緩沖區中的文本。 y 表示把一個字符翻譯為另外的字符(但是不用于正則表達式)/1 子串匹配標記& 已匹配字符串標記
|
新聞熱點
疑難解答