Linux网络——shell编程之sed编辑器
- 一、sed编辑器
- 1.概述
- 2.工作流程
- 3.工作场景
- 4.常用选项
- 二、sed编辑器基本用法
- 1.打印操作
- 2.打印行号
- 3.增加操作
- 4.插入操作
- 5.替换操作
- 6.删除操作
- 7.字符转换
一、sed编辑器
1.概述
sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等
2.工作流程
读取
:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中(又称模式空间,pattern space)。
执行
:默认情况下,所有的sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed 命令 将会在所有的行上依次执行。
显示
:发送修改后的内容到输出流。在发送数据后,模式空间将会被清空。在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。
备注:在所有的文件内容都被处理完成之前,上述过程将重复执行,直至所有内容被处理完。
3.工作场景
①. 编辑那些对舒适的交互式编辑而言太大的文件。
②. 在编辑命令太复杂而难于在交互模式下键入的时候编辑任何大小的文件。
③. 要在对输入的一趟扫描中有效的进行多个‘全局’(global)编辑函数。
4.常用选项
sed命令的常用选项
选项 | 说明 |
---|---|
-e 或--expression= | 表示用指定命令来处理输入的文本文件,只有一个操作命令时可省略,一般在执行多个操作命令使用 |
-f 或--file= | 表示用指定的脚本文件来处理输入的文本文件 |
-h 或--help | 显示帮助 |
-n 、--quiet 或 silent | 禁止sed编辑器输出,但可以与p命令一起使用完成输出 |
-i | 直接修改目标文本文件 |
sed命令的常用操作
选项 | 说明 |
---|---|
s | 替换 ,替换指定字符 |
d | 删除 ,删除选定的行 |
a | 增加 ,在当前行下面增加一行指定内容 |
i | 插入 ,在选定行上面插入一行指定内容 |
c | 替换 ,将选定行替换为指定内容 |
y | 字符转换 ,转换前后的字符长度必须相同 |
p | 打印 ,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以 ASCII 码输出。其通常与“-n”选项一起使用。 |
= | 打印行号 |
l | 打印数据流中的文本和不可打印的ASCII字符(比如结束符$、制表符\t) |
二、sed编辑器基本用法
1.打印操作
语法格式:sed -n '行号p' 文件名
2.打印行号
语法格式:
sed '=' 文件名
3.增加操作
语法格式:
sed '行号a\增加的内容' 文件名
4.插入操作
语法格式:
sed '行号i\插入的内容' 文件名
5.替换操作
语法格式:
sed 's/要替换的字符串/新的字符串/g' 文件名
6.删除操作
语法格式:
删除行sed '行号d' 文件名
删除字符串sed 's/要删除的字符//g' 文件名
7.字符转换
语法格式:
sed 'y/需要转换的字符/转换后的字符' 文件名