options
-e SCRIPT 可以同時執行多個addresscommand,sed -e …… -e ……
-n 靜默模式,不顯示模式空間中的內容
-i 直接修改原文件
-r sed默認不支持擴展的正則表達式,-r則支持
-f 執行指定文件,該文件內容為addresscommand的一系列格式
address
1 startline,overline 用逗號分割
2 /pattern/ 用正則表達式即可
3 /pattern1/,/pattern2/ 第一次被模式匹配的行開始,到第一次被模式2匹配到的行 結束
4 linenumber 指定的行,其中$表示最後一行。
5 startline +n 從指定行開始,向後的n行,共n+1行。
command 若有多個命令用;分開d 刪除符合條件的行
p 輸出行,n和p一起用表示只打印那些發生變換的行
a\ 在當前行下面插入文本
i\ 在當前行上面插入文本
q 退出sed
n 讀取下一行,用下一個命令處理新行,而不是第一個命令。
a(此處有空格)\’string’ 在指定的行後追加新行,內容為string
i(此處有空格)\’string’ 行前
r(此處有空格)file 將指定文件內容添加至符合條件的每行後面,可用來將兩個 文件合並
w(此處有空格)file 指定范圍內行另存為指定文件中。
s/// /pattern/string/修飾符 查找pattern並替換為string,默認只替換每行中第一次 被匹配到的字符串。/可以用@ #等代替。
修飾符 g 全局替換
i 忽略大小寫
假設處理的文本為test.file
在每行的頭添加字符,比如"HEAD",命令如下:
sed 's/^/HEAD&/g' test.file
在每行的行尾添加字符,比如“TAIL”,命令如下:
sed 's/$/&TAIL/g' test.file
在指定行的末尾添加內容: Cat file
Aaaa Bbbb
Cccc Sed ‘s/cc.*/& eeee/g’ file