歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

Linux sed 用法

1. Sed簡介
2. 定址
3. Sed命令
4. 選項
5. 元字符集
6. 實例
7. 腳本

1. Sed簡介
 
sed是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成後,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容並沒有 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。以下介紹的是Gnu版本的Sed 3.02。
 
方法1:
 sed -i 's/被替換的內容/要替換成的內容/' file
 
方法2:
 sed 's/被替換的內容/要替換成的內容/g' file > file.out
 mv file.out file
 
這裡注意:
 不能這樣做:
 sed 's/被替換的內容/要替換成的內容/g' file > file
 這樣只會清空源文件。
 

2. 定址
 
可以通過定址來定位你所希望編輯的行,該地址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的范圍(包括行數表示的那兩行)。如1,3表示1,2,3行,美元符號($)表示最後一行。范圍可以通過數據,正則表達式或者二者結合的方式確定 。
 

3. Sed命令
 
調用sed命令有兩種形式:
 

sed [options] 'command' file(s)
 
sed [options] -f scriptfile file(s)
 

<
 a\
 在當前行後面加入一行文本。
 
b lable
 分支到腳本中帶有標記的地方,如果分支不存在則分支到腳本的末尾。
 
c\
 用新的文本改變本行的文本。
 
d
 從模板塊(Pattern space)位置刪除行。
 
D
 刪除模板塊的第一行。
 
i\
 在當前行上面插入文本。
 
h
 拷貝模板塊的內容到內存中的緩沖區。
 
H
 追加模板塊的內容到內存中的緩沖區
 
g
 獲得內存緩沖區的內容,並替代當前模板塊中的文本。
 
G
 獲得內存緩沖區的內容,並追加到當前模板塊文本的後面。
 
l
 列表不能打印字符的清單。
 
n
 讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令。
 
N
 追加下一個輸入行到模板塊後面並在二者間嵌入一個新行,改變當前行號碼。
 
p
 打印模板塊的行。
 
P(大寫)
 打印模板塊的第一行。
 
q
 退出Sed。
 
r file
 從file中讀行。
 
t label
 if分支,從最後一行開始,條件一旦滿足或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾。
 
T label
 錯誤分支,從最後一行開始,一旦發生錯誤或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾。
 
w file
 寫並追加模板塊到file末尾。
 
W file
 寫並追加模板塊的第一行到file末尾。
 
!
 表示後面的命令對所有沒有被選定的行發生作用。
 
s/re/string
 用string替換正則表達式re。
 
=
 打印當前行號碼。
 
#
 把注釋擴展到下一個換行符以前。
 
以下的是替換標記
 
g表示行內全面替換。
 
p表示打印行。
 
w表示把行寫入一個文件。
 
x表示互換模板塊中的文本和緩沖區中的文本。
 
y表示把一個字符翻譯為另外的字符(但是不用於正則表達式)

Copyright © Linux教程網 All Rights Reserved