陈某某的网络日志

活到老学到老,学习无止境

0%

sed学习笔记

简介

sed(stream editor,流编辑器),本质是一个面向字符流的非交互式文本编辑器。功能强大,可以用几行代码完成复杂的编辑任务。

工作原理

sed维护了两个缓冲区:

  • 模式空间(the active pattern space)
  • 保持空间(the auxiliary hold space)
  1. 从输入流读入第一行,移除换行符,放到pattern space
  2. 执行命令,命令前可由地址筛选
  3. 除非使用-n选项,默认会打印pattern space的内容到 output stream,加上被移除的换行符。
  4. 开始下个循环,回到1 读取下一行,直到所有行处理完成。

常用基本命令

命令 说明
s 替换
d 删除模式空间,并会读取下一行
n 读取下一行,会替换掉原模式空间的行
p 打印
a 追加
i 插入

高级命令

命令 说明
D 只删除多行模式空间的第一行,不会读到新的内容
N 读取新的行,添加到模式空间现有内容之后
P 多行打印,只打印第一行
h,H 模式空间的内容,复制或追加到保持空间
g,G 保持空间的内容,复制或追加到模式空间
x 交换模式空间和保持空间的内容

示例