sed介绍
sed编辑器被称作流编辑器(stream editor),根据命令以非交互方式处理数据流中的数据。
- 一次从输入中读取一行数据。
- 根据所提供的编辑器命令匹配数据。
- 按照命令修改流中的数据。
- 将新的数据输出到STDOUT。
语法
sed options script file
options
-e script 多点编辑。
-f file 从指定文件中读取编辑脚本。
-n 静默输出,sed默认输出数据。
-r 支持扩展正则表达式
-i 直接修改配置文件
-i.bak 修改配置文件前先备份
script
类别 | 命令 | 含义 |
---|---|---|
地址界定 | 不给定地址 | 对全文进行搜索 |
# | 指定单行,$:最后一行 | |
/pattern/ | 被此处模式所能够匹配到的每一行 | |
m,n | m行到n行 | |
m,+n | 从m行开始,连续取n行 | |
/pat1/,/pat2/ | 从模式pat1开始,到pat2结束 | |
m,/pat1/ | 从第m行开始,到匹配到pat1结束 | |
1~2 | 从第一行开始取,每跳过2行(包括上上次取到的一行)取一行,奇数行 | |
2~2 | 取偶数行 | |
编辑命令 | d | 删除模式匹配到的行 |
p | 打印当前模式空间内容 | |
a [\]text | 在指定行后面追加文本,支持使用\n实现多行追加 | |
i [\]text | 在行前面插入文本 | |
c [\]text | 替换行为单行或多行 | |
w /path/file | 保存模式匹配的行至指定文件 | |
r /path/file | 读取指定文件的文本至模式空间中匹配到的行后 | |
= | 为模式空间中的行打印行号 | |
! | 模式空间中匹配行取反处理 | |
搜索替代 | s///,s@@@,s### | 替换标记: g 行内全局替换 p 显示替换成功的行 w /path/file 将替换成功的行保存至文件中 |