执行步骤:
1. 取一行内容到模式空间
2. 针对模式空间中的内容执行编辑命令
3. 将模式空间中的内容进行输出
4. 清空模式空间
5. 取下一行内容
用法:sed OPTIONS... [SCRIPT] [INPUTFILE...]
-r: 使用扩展的正则表达式;
-n, --quiet, --silent: 不输出模式空间的内容;
-i:直接编辑原文件;
-e: 加入多个命令
-e 'CMD1' -e 'CMD2' -e 'CMD3' 对每一行分别执行三个命令
#sed -e '1d' -e '2d' -e '3p' /etc/fstab
'CMD1;CMD2;CMD3' 简写上面的命令
#sed '1d:2d:3p' /etc/fstab
-f /path/to/sed_script:从指定的文件读取处理脚本
地址定界:
m: 指定第m行
$: 最后一行
/regexp/:任何能够被regexp匹配到的行
\%regexp%: 任何能够被regexp匹配到的行;换用%为边界符号;
/regexp/I
\%regexp%I:匹配时忽略字符大小写;
addr1, addr2: 指定范围内的所有行:
m,/regexp/ 匹配第m行到regexp找到的那一行
m,n 匹配第m行到第n行
/regexp1/,/regexp2/ 匹配第regexp1行到第regexp2行
m,+n 匹配第m行到后面n行
m~n:指定起始位置,以及步长 第m行及后面每个第n行
基本正则表达式元字符:
字符:. [] [^]
次数:*, \+, \?, \{i,j\}
分组:\(\)
锚定:^, $, \<, \>
或者:\|
后向引用:\1, \2, ...