行编辑器
默认不编辑原文件仅对模式间的数据进行处理,处理结束后将模式空间打印至屏幕
sed ·address+command· file ….
-i:直接修改原文件
-n:不再默认显示模式空间中的内容
-e SCRIPT:可以同时执行多个脚本
-f /PATH/TO/SCRIPT:
-r:使用扩展正则表达式
Address
1 startline,endline
比如1.100
$:最后一行
2/RegExp/
/^root/
3/pattern1/,/pattern2/
第一次被pattern1匹配到的行开始至第一次被pattern2匹配到的行结束,这中间所有的行
4linenumber
指定的行
5startline,+N
从startline开始向后的N行
Command
d:删除符合条件的行
p:显示符合条件的行
a \string:在指定的行后面追加新行,内容为string
I \string:在指定的行前面追加新行,内容为string
r FILE:将指定的文件的内容添加至符合条件的行处
w FILE:将指定的文件内容存之指定的文件中
s /pattern/string/修饰符:查找并替换,默认只替换第一次被匹配到的字符串
g:全局替换
i:忽略大小写
&:引用模式匹配
练习
1删除/etc/grub.conf文件中行首的空白符
2替换/etc/inittab文件中“id:3:initdefault:”一行中的数字为5
3删除/etc/inittab文件中的空白行
4删除/etc/inittab文件中开头的#号
5删除某文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符
6删除某文件中以空白字符后面跟#类的行中的开头的空白字符及#
7取出一个文件路径的目录名称
本文出自 “Linux根文件系统” 博客,请务必保留此出处http://amazonjian.blog.51cto.com/9604681/1709830
原文:http://amazonjian.blog.51cto.com/9604681/1709830