sed [options] 'AddressCommand' file ...

一、options
-n 安静模式,在一般sed用法中,所有来自STDIN的数据都会打印,加上-n后则只有经过sed指定打印的才会列出。
-e 直接在命令行模式上进行sed的多个动作。(类似于grep的-e)
-f 直接将sed动作写在一个文件内, -f filename 则可执行filename内的sed动作
-r sed的动作支持的是扩展型正则表达式的语法(默认是基础正则表达式语法)
-i 直接修改读取的文件内容,而不是由屏幕输出。

二、Address:
1.Address可以省略,也可以指定。
2.StartLine,EndLine ,比如1,100指定第1至100行。$代表最后一行。
3、LineNumber 指定的行
4、StartLine, +N 从startLine开始,向后的N行;
5./RegExp/ 比如: /^root/
6、/pattern1/,/pattern2/ 第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行

三、Command
a \string: 在指定的行后面追加新行,内容为string
i \string: 在指定的行前面添加新行,内容为string
c \string: 替换Adrress指定的所有行(整行替换)
d: 删除符合条件的行,不接任何参数
p: 显示符合条件的行;常与-n参数一起使用
s/pattern/string/修饰符: 查找并替换,默认只替换每行中第一次被模式匹配到的字符串
修饰符:
g: 全局替换
i: 忽略字符大小写
s///: s###, s@@@
\(\), \1, \2
&: 引用模式匹配整个串


例子:
将 regular_express.txt 内每一行结尾若为 . 则换成 !
sed -i 's/\.$/\!/g' regular_express.txt
注意上面!后面不能加$,否则会替换打印出"!$"

有任何疑问请点击留言: 留言板
本文发布于http://wiki.too2.net,转载请联系本人。