sed基本用法

1.簡介html

sed全稱是Stream Editor,是非交互式的編輯器。它不會修改原文件,除非使用shell重定向來保存結果, 或者能夠指定-i選項來在線修改文件,這樣就會改變原文件,升級腳本一般用-i選項。 默認狀況下,全部的輸出行都被打印到屏幕上 。sed 自己也是一個 管線命令 ,能夠分析 standard input 。mysql

sed編輯器 逐行處理文件(或輸入) ,並將結果發送到屏幕。具體過程以下:linux

(1) 首先sed把當前正在處理的行保存在一個臨時緩存區中(也稱爲模式空間), (2) 而後處理臨時緩衝區中的行, (3) 完成後把該行發送到屏幕上。正則表達式

sed每處理完一行就將其從臨時緩衝區刪除,而後將下一行讀入,進行處理和顯示。處理完輸入文件的最後一行後,sed便結束運行。sed把每一行都存在臨時緩衝區中,對這個副本進行編輯,因此不會修改原文件。sql

2. 定址shell

在使用sed的過程當中,咱們常常會聽到「定址」,那麼什麼是「定址」呢?緩存

定址用於決定對哪些行進行編輯 。地址的形式能夠是 數字、正則表達式、或兩者的結合 。若是沒有指定地址,sed將處理輸入文件的全部行。編輯器

好比:ide

1)地址是一個數字則表示行號;是「$"符號,則表示最後一行。spa

sed -n '3p' datafile   #只打印第三行

2)只顯示指定行範圍的文件內容

sed -n '100,200p' mysql_slow_query.log  # 只查看文件的第100行到第200行

3)地址是逗號分隔的,那麼須要處理的地址是這兩行之間的 範圍 (包括這兩行在內)。範圍能夠用數字、正則表達式、或兩者的組合表示。

  sed '2,5d' datafile  #刪除第二到第五行 

   

  sed '/My/,/You/d' datafile  #刪除包含"My"的行到包含"You"的行之間的行 

   

  sed '/My/,10d' datafile  #刪除包含"My"的行到第十行的內容

3. sed命令與選項

調用sed命令有兩種形式:

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

對於第一種形式,具體調用通常是:

sed [選項][定址[命令]] file(s)

命令和選項以下:

3.一、sed命令

 

3.二、sed選項

補充:

在sed的命令行中引用shell 變量 時要使用 雙引號 ,而不是一般所用的單引號。這根grep同樣,雙引號會獲取變量的值,而單引號只會把變量當作普通字面字符。

更多能夠參考:

《鳥哥的linux私房菜 基礎篇》第12章

相關文章
相關標籤/搜索