sed
- sed編輯器
-
- sed的工作流程
- 指令格式
- 常用選項
- 常用操作
sed編輯器
sed是一種流編輯器,在編輯器處理資料之前基于預先提供的一組規則來編輯資料流
sed編輯器可以根據指令來處理資料流中的資料,這些指令要麼從指令行中輸入,要麼存儲在一個指令文本檔案中
sed的工作流程
讀取: sed從輸入流(檔案、管道、标準輸入)中讀取一行内容并存儲到臨時的緩沖區中(又稱模式空間, pattern space)
執行:預設情況下,所有的sed指令都在模式空間中順序地執行,除非指定了行的位址,否則sed指令将會在所有的行上依次執行。
顯示:發送修改後的内容到輸出流。在發送資料後,模式空間将會被清空。
在所有的檔案内容都被處理完成之前,上述過程将重複執行,直至所有内容被處理完。
指令格式
sed -e '操作' 檔案1 檔案2 ...
sed -n-e '操作' 檔案1 檔案2.. 不輸出結果
sed -f 腳本檔案 檔案1 檔案2... 執行指令
sed -i -e '操作' 檔案1 檔案2... 對文本進行修改
sed -e 'n{
操作1
操作2
...
}' 檔案1 檔案2...
常用選項
-e / --expression= | 表示用指定指令來處理輸入的文本檔案,隻有一個操作指令時可省略,一般在執行多個操作指令使用 |
-f / --file= | 表示用指定的腳本檔案來處理輸入的文本檔案 |
-h / --help | 顯示幫助 |
-n,–quiet / silent | 禁止sed編輯器輸出,但可以與p指令一起使用完成輸出 |
-i | 直接修改目标文本檔案 |
常用操作
s | 替換,替換指定字元 |
d | 删除,删除標明的行 |
a | 增加,在目前行下面增加一行指定内容 |
i | 插入,在標明行上面插入一行指定内容 |
c | 替換,将標明行替換為指定内容 |
y | 字元轉換,轉換前後的字元長度必須相同 |
p | 列印,如果同時指定行,表示列印指定行:如果不指定行,則表示列印所有内容;如果有非列印字元,則以ASCII碼輸出。其通常與"-n"選項一起使用 |
= | 列印行号 |
l | 列印資料流中的文本和不可列印的ASCIl字元(比如結束符$、制表符\t) |