shell编程之sed编辑器
一、sed编辑器
1.概述
sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等
2.工作流程
-
读取:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)。
-
执行:默认情况下,所有的sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed 命令 将会在所有的行上依次执行。
-
显示:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。
-
备注:在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。
注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出。
3.工作场景
- 编辑那些对舒适的交互式编辑而言太大的文件。
- 在编辑命令太复杂而难于在交互模式下键入的时候编辑任何大小的文件。
- 要在对输入的一趟扫描中有效的进行多个‘全局’(global)编辑函数。
4.命令格式
常用格式:
sed -e '操作’ 文件1 文件2. …
sed -n -e '操作‘ 文件1 文件2. …
sed -f 脚本文件 文件1 文件2 …
sed -i -e '操作’ 文件1 文件2 …sed -d 'n{
操作1
操作2
…
} ’ 文件1 文件2 …