介绍
sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如:vim),你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流
它是文本处理中非常有用的工具,能够完美的配合正则表达式使用,处理时,把当前处理的行存储在临时缓冲区中,称为模式空间,接着使用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕,接着处理下一行,这样不断重复,直到文件末尾,文件内容没有改变。
工作流程
sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中
sed编辑器会执行下列操作:
一次从输入中读取一行数据 |
根据所提供的编辑器命令匹配数据 |
按照命令修改流中的数据 |
将新的数据输出到STDOUT |
命令格式
sed [选项] [sed内置命令字符] [输入文件]
选项
-n | 取消默认sed的输出,常与sed内置命令 p 一起使用 |
-i | 直接将修改结果写入文件,不用 -i,sed修改的是内存数据 |
-e | 多次编辑,不需要管道符 |
-r | 支持正则扩展 |
sed的内置命令用于对文件进行不同的操作功能,如:对文件增删改查
sed常用的内置命令字符:
a Append | 对文本追加,在指定行后面添加一行/多行文本 |
d Delete | 删除匹配行 |
i Insert | 表示插入文本,在指定行前添加一行/多行文本 |
p Print | 打印匹配行的内容,通常与 -n 一起使用 |
s/正则/替换内容/g | 匹配正则内容,然后替换内容(支持正则),结尾g表示全 |