目录
1.sed命令介绍
Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
2.sed命令的工作流程
sed的工作流程只要包括:读取、执行和显示三个过程
读取:sed从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区域中(又称为模式空间 pattern space)
执行:默认情况下,所有的sed命令都在模式空间中顺序地执行,除非指定了行的地址,否则sed命令会依次对所有行进行执行。
显示:发送默认修改后的内容输出流。在发送数据后,模式空间会被清空。在所有的文件内容都准备处理完成之后,上述过程将重复进行,知道所有行完成命令。
注意:默认情况下所有的sed命令都是在模式空间内执行的,因此输入的文件本身并不会发生改变,除非使用重定向存储输出。
3.sed命令常用选项及操作
常用选项
- -e或--experession=:表示用指定命令来处理输入的脚本文件,只有一个操作命令是可省略,一般在执行多个操作命令使用。
- -f或--file=:表示用指定的脚本文件来处理输入的文本文件。
- -h或--help:显示sed的命令帮助
- -n或--quiet或slient:禁止sed编辑器输出,但可以和p命令一起完成输出
常用操作
- s:替换,替换指定字符
- d:删除,删除指定的行
- a:增加,在当前行的下一行增加一行指定内容
- i:插入,在指定行上面插入一行指定内容
- s:替换,将选定行替换成指定内容
- y:字符转换,转换前后的字符长度必须相同
- p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容;如果有非打印字符,则以ASCII码输出。通常与-n一起使用
- =:打印行数
- l:打印数据流中的文本和不可打印的ASCII字符
4.sed命令格式
sed -e '具体操作' 文件名1 文件名2 ...
sed -n -e '具体操作' 文件名1 文件名2 ...
sed -f 脚本文件 文件名1 文件名2 ...
sed -i -e '具体操作' 文件名1 文件名2 ...
5.sed命令的实际使用
1.直接输出内容
sed命令的第三阶段是显示,所以会有两行相同的内容
2.不显示直接输出
3.直接查看文件
4.查看文件指定行
查看第一行
查看一到三行
5.查看奇数行或偶数行
n的作用是跳到当前行的下一行
查看奇数行
查看偶数行
6.通过正则表达式匹配行内容
匹配包含相关字符的行
匹配以指定字符为首的行
匹配以指定字符结尾的行
使用-r选项支持扩展正则表达式
7.删除行
删除指定行
删除范围内的行
取反删除 表示删除匹配项以外的行
8.搜索替换
用法与vim编辑器类似
在每行行首加#号
删除行首的#号
9.插入
在第一行下方插入
行前插入
10.复制、粘贴、剪切
- H:复制到剪切板
- d:删除
- G:粘贴
使用复制和删除,再粘贴,实现剪切的作用
复制粘贴