天天看點

32、sed指令詳解

sed(Stream editor)流編輯器,也叫行編輯器。sed是從管道或檔案中讀取一行,處理一行,然後輸出一行,再處理一行,在輸出一行,直到全部處理完成;每當處理一行時,會把目前處理行存儲在臨時緩沖區中,稱為模式空間(pattern space),接着用sed指令處理緩沖區中的内容,處理完成後,把緩沖區的内容列印到螢幕;特點:打開速度快,執行速度快。

sed指令格式

sed [option] ... 'script;script;...' inputfile...

sed常用選項

-n 不輸出至螢幕,預設是輸出至螢幕的

32、sed指令詳解

-e 多點編輯,可以同時執行多個比對更改

-f /path/script_file 從指定檔案中讀取編輯腳本

-r,-E  使用擴充正規表達式

-i.bak  備份檔案并進行編輯儲存

32、sed指令詳解

script選項及格式

由位址格式+指令實作

位址格式

1、不停供,則全文讀取

2、#:指定的行,$為尾行  /pattern/被pattern比對的行

3、位址範圍:#,# 從#行到第幾行,如1,4表示1到4行;#,+#,從#行到#+#行;

   /pattern1/,/pattern2/ 從比對pattern1到比對pattern2行,一直往下比對,不會中斷

32、sed指令詳解

4、步進:~   1~2 則顯示 1 3 5 7.....

32、sed指令詳解
指令

p  列印目前模式空間内容,追加到預設輸出後,一般結合-n 選項使用

32、sed指令詳解

I 忽略大小寫輸出

32、sed指令詳解

d 删除模式空間比對的行

a [\\]text 在指定行後面追加文本,支援使用\n加多行

32、sed指令詳解

i [\\]text 在指定行前面追加文本,支援使用\n加多行

32、sed指令詳解

c [\\]text 替換行為text

32、sed指令詳解

w /path/file 儲存模式比對的行到指定檔案

32、sed指令詳解
32、sed指令詳解

r /path/file 讀取指定檔案的文本内容至模式空間中比對的行後面

32、sed指令詳解

=  為模式空間中的行列印行号

32、sed指令詳解

!模式空間中比對的行取反處理

32、sed指令詳解

s/pattern/string/修飾符   查找替換,支援使用其他分隔符,如s@@@,S###等

g行内全局替換

p顯示替換成功的行