概念: 默认是行处理
sed 是流编辑器, 一次处理一行内容, 把当前处理的行存储在临时缓冲区中, 称为模式空间. 接着用 sed 命令处理缓冲区中的内容, 处理完成后, 把缓冲区的内容送往屏幕, 然读入下行, 执下一循环. 没有使用特殊命令, 会在两个循环之间清空模式空间, 但不会清空保留空间. 直到文件末尾. 文件内容并没有改变, 除非使用重定向定向输出存储. 默认是打印
sed option [sed 脚本] file
常用选项:
-n: 不输出模式空间内容到屏幕, 即不自动打印
-e: 多点编辑
-f /path/script_file 从指定文件中读取编辑脚本
-r: 支持使用扩展正则表达式
-i.bak(后缀可以自己随性起) 备份文件并原处编辑
地址定界:
1. 不给地址: 对全文进行处理
2. 单地址:
#: 指定的行,$: 最后一行
/pattern/: 被 此处模式所能够匹配到的每一行
3. 地址范围:
- #,#
- #,+#
- /pat1/,/pat2/
- #,/pat1/
4.~: 步进
1~2 奇数行
2~2 偶数行
sed 编辑命令:
d 删除模式空间匹配的行, 并立即启用下一轮循
环
p 打印当前模式空间内容, 追加到默认输出之后
a [\]text 在指定行后面追加文本, 支持使用 \ n 实现多行
追加
i [\]text 在行前面插入文本
c [\]text 替换行为单行或多行文本
w /path/file 保存模式匹配的行至指定文件
r /path/file 读取指定文件的文本至模式空间中匹配到
的行后
= 为模式空间中的行打印行号
! 模式空间中匹配行取反处理
来源: http://www.bubuko.com/infodetail-3683190.html