歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux sed 用法

Linux sed 用法

日期:2017/2/28 14:52:09   编辑:Linux教程

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