sed基本用法
sed基本用法:
sed:Stream EDitor
sed行编辑器,主要逐行处理文本
sed将某行读取到内存中,在内存中编辑后打印到屏幕;对于sed而言,该段内存空间叫做模式空间
模式空间:sed所处理的文本需要做模式过虑,符合模式的就加载到模式空间处理,再使用处理命令进行处理,处理完输出到屏幕。默认sed对源文件不做任何处理,仅对模式空间中的数据做处理。处理完成后将模式空间打印到屏幕,若要禁用默认设置,则使用-n选项。
man sed 查看用法
sed命令使用格式
sed [option] ‘AddressCommand’ file …
-n 静默模式,不再默认显示模式空间中的内容
Address:地址,行范围
Command:要施加的命令
file:要处理的文件
格式:
Address:
1.StartLine,EndLine
比如:1,100
$:表示最后一行
$-1:倒数第二行
2.使用正则表达式指定模式/RegExp/
比如:/^root/
3./pattern1/,/pattern2/
表示处理该文件中第一次被模式1(/pattern1/)匹配到的行开始至第一次被模式2(/pattern2/)匹配到的行结束中间所有的行
4.LineNumber
精确处理指定的行
5.StartLine,+N
从StartLine开始,向后的N行;总N+1行
Command:
d:删除符合条件的行;
sed ‘1,3d’ /etc/fstab
#删除fstab 1-3行内容,没在地址中的没被删除,还在模式空间中并被打印出来。
sed ‘/oot/d’ /etc/fatab
#删除含有oot的行
sed ‘1,+2d’ /etc/fstab
#删除fstab 1-3行内容
sed ‘/^\//d’ /etc/fatab
#删除以/开头的行, ‘\’ 转义字符
p:显示符合条件的行;
sed ‘/^\//p’ /etc/fatab
#显示以/开头的行, ‘\’ 转义字符;p命令显示后,模式空间还存在所显示的内容,所以会显示两次;