sed 同樣可以通過 shell 中的重定向將輸出重定向到一個文件中,但這個文件必須不能與用于輸入的是同一個文件。
sed 命令的兩種語法分別如下所示:
sed [OPTIONS] 'COMMAND' [FILE] ...
sed [OPTIONS] -f SCRIPTFILE [FILE] ...
sed 有如下常用的選項:
- -e —— 它告訴 sed 將下一個參數解釋為 sed 指令。只有在命令行上給出多個 sed 指令時才需要使用 -e 選項。
- -f —— 指定由 sed 指令組成的腳本的名稱。如果 sed 腳本的第一行為“#n”,則 sed 的行為與指定 -n 選項相同。
- -i —— 直接修改讀取的內容,而不是輸出到終端。
- -n —— 取消默認輸出。在一般 sed 的用法中,所有來自標準輸入的數據一般會被顯示到終端上。但如果使用 -n 參數后,只有經過 sed 處理的行才會被顯示輸出。
sed 指令的語法形式:
- 不指定地址(操作行),那么它被應用于每個輸入行。
- 指定地址范圍
[start_address,end_address] command
- 指定單個地址
[single_address] command
- 編輯命令還可以使用大括號進行分組以使其作用于同一個地址,其語法格式為:
[address]{
command1
command2
command3
}
注意:上面的語法中,command1 可以與左大括號放在同一行,但是右大括號必須自己單獨處于一行。如果命令之間使用分號分隔,那么可以將多個 sed 編輯命令放在同一行。但是不提倡在同一行放置多個編輯命令。
sed 的編輯命令有 24 個,具體可以參考 sed 的 man 參考手冊。
本文參考自 《Linux Shell命令行及腳本編程實例詳解 》