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