---恢复内容开始---
sed是一种流处理工具,通过匹配模式按行读取文件中的内容到内存的模式空间内,而后再根据command做处理。
格式:
sed [options] 'addresscommand' file..
-n :静默模式,不再默认显示模式空间中的内容
-i:修改源文件
-e SCRIPT -e SCRIPT:可以同时执行多个脚本
-f /PATH/TO/SED_SCRIPT
-r:表示使用扩展正则表达式
Address:
1.StartLine,EndLine
比如1,100
2./RegExp/
/^root/
3./pattern1/,/pattern2/
从第一次被pattern1匹配的行-->第一次被pattern2匹配的行中间的所有行
4.LineNumber
指定的行
5.StartLine, +N
从StartLine开始,向后的N行
Command:
d:删除否和条件的行;
p:显示符合条件的行;
a string:在指定行后追加新行,内容为string
-n 可用于换行
i string:在指定行前追加新行,内容为string
r File:将指定文件的内容添加至符合条件的行处
w File:将指定范围内的内容另存至指定 的文件中
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配搭配的字符串
加修饰符
g:全局替换
i:忽略字符大小写
s/ / / : s### , s@@@
( ) , 1 , 2
&:引用模式匹配的整个串
几个练习题:
1、删除/etc/gurb.conf文件中行首的空白符
解:sed 's/^[[:space:]]*//g' /etc/grub.conf
2、替换/etc/inittab文件中"id:3:initdefault:"一行中的数字为5
解:sed 's/id:3/id:5/' /etc/inittab
3、删除/etc/inittab文件中的空白行
解:sed '/^$/d' /etc/inittab
4、删除/etc/inittab文件中开头的#号
解:sed 's/^#//g' /etc/inittab
---恢复内容结束---