sed
sed: Steam Editor(字符流编辑器)的缩写,简称流编辑器
sed是操作、过滤和转换文本内容的强大工具
常用功能包括结合正则表达式对文件实现快速增删改查,其中查询的功能中最常用的两大功能是过滤 (过滤指定字符串)、取行(取出指定行)
工作流程
- 读取文件,一次读取一行
- sed模式空间(pattern space):读取每一行数据放入自己的工作空间(文本数据读入内存)
- 模式匹配
- 匹配失败 :默认输出到屏幕(可以取消)
- 匹配成功:编辑(输出到屏幕)
语法
sed [选项] [sed内置命令字符] [输入文件]
选项
参数选项 解释
-n 取消默认sed的输出,常与sed内置命令p一起用(取消默认输出,只显示符合规则的)
-i 直接将修改结果写入文件,不用-i,sed修改的是内存数据
-e 多次编辑,不需要管道符了
-r 支持正则扩展
内置命令字符
sed的内置命令字符用来对文件进行不同的操作功能,如对文件增删改查
sed常用内置命令字符
字符 解释
a append,对文本追加,在指定行后面添加一行/多行文本
d delete,删除匹配行
i insert,表示插入文本,在指定行前添加一行/多行文本
p print,打印匹配行的内容,通常p与-n一起用
s/正则/替换内容/g 匹配正则内容,然后替换内容(支持正则),结尾g代表全局匹配
sed匹配范围
范围 解释
空地址 全文处理
单地址 指定文件某一行
/pattern/ 被模式匹配到的那一行
范围区间 /pattern1/,/pattern2/。10,20十到二十行;10,+5第10行向下5行。
步长 开始步长。12,表示1、3、5、7、9行,2~2,表示2、4、6、8、10;