一、sed简介
sed是一种流编辑器,处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变
二.sed的语法
2.1.基本语法
sed OPTIONS... [SCRIPT] [INPUTFILE...]
2.2.常用参数详解
-n,--quiet,--silent:不输出模式空间中的内容,使用安静模式,在一般sed的用法中,所有来自STDIN的数据一般都会被列出到屏幕上,但如果加上-n参数后,则只有经过sed特殊处理的那一行才会被
列出来;
-i:直接编辑原文件,而不是由屏幕输出,默认不对原文件进行操作;
e:直接在命令行模式上进行sed的动作编辑,多个子命令之间也可以用分号隔开;sed-ecommand1;command2...filename或者sed-e'command1'-e'command2'....filename
-r:使用扩展正则表达式;
-f:直接将sed的动作写在一个文件内,-ffilename则可以执行filename内的sed动作。
三.模式空间中的编辑操作
3.1.地址定界
示例:
生成测试文件
a)替换文件中所有:为@@@
b)替换1-3行的:
c)替换1行和3行的:
d)替换2行及其后两行:
e)每隔1行替换:
f)带sbin字符忽略大小写的行替换:
g)daemon和lp字符之间的行替换:
h)第一行到adm之间的
i)adm到最后一行的
j)其他sed分隔符的指定
3.2 常用编辑命令
示例:
生成测试文件
a)删除行
b)显示行
c)添加行
d)插入行
c)替换行
d)整合文件
e)保存处理结果
f)字符替换
3.3.特殊符号的使用