sed(Stream editor)流编辑器,也叫行编辑器。sed是从管道或文件中读取一行,处理一行,然后输出一行,再处理一行,在输出一行,直到全部处理完成;每当处理一行时,会把当前处理行存储在临时缓冲区中,称为模式空间(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容打印到屏幕;特点:打开速度快,执行速度快。
sed命令格式
sed [option] ... 'script;script;...' inputfile...
-n 不输出至屏幕,默认是输出至屏幕的
-e 多点编辑,可以同时执行多个匹配更改
-f /path/script_file 从指定文件中读取编辑脚本
-r,-E 使用扩展正则表达式
-i.bak 备份文件并进行编辑保存
由地址格式+命令实现
1、不停供,则全文读取
2、#:指定的行,$为尾行 /pattern/被pattern匹配的行
3、地址范围:#,# 从#行到第几行,如1,4表示1到4行;#,+#,从#行到#+#行;
/pattern1/,/pattern2/ 从匹配pattern1到匹配pattern2行,一直往下匹配,不会中断
4、步进:~ 1~2 则显示 1 3 5 7.....
p 打印当前模式空间内容,追加到默认输出后,一般结合-n 选项使用
I 忽略大小写输出
d 删除模式空间匹配的行
a [\]text 在指定行后面追加文本,支持使用n加多行
i [\]text 在指定行前面追加文本,支持使用n加多行
c [\]text 替换行为text
w /path/file 保存模式匹配的行到指定文件
r /path/file 读取指定文件的文本内容至模式空间中匹配的行后面
= 为模式空间中的行打印行号
!模式空间中匹配的行取反处理
s/pattern/string/修饰符 查找替换,支持使用其他分隔符,如s@@@,S###等
g行内全局替换
p显示替换成功的行
w /path/file 将替换成功的行保存至文件中
I,i 忽略大小写