1、概述
sed是文本编辑器,作用是对文本的内容进行增删改查。
和vim不一样,sed是按行进行处理。
sed一次处理一行内容,处理完一行之后紧接着处理下一行,一直到文件的末尾
模式空间:临时储存,修改的结果临时保存的地方,不写入磁盘,文件的内容不会发生变化,展示完即删除。
写入:把修改写入到磁盘当中。
2、sed的选项
| 选项 | 说明 | 
| -e | 指定命令处理的文本文件,多个执行操作需要加上-e | 
| -f | 高级脚本模式 | 
| -i | 修改目标文件,使之生效 | 
| -n | 显示script处理之后的结果 | 
3、sed的操作符
| 操作符 | 说明 | 
| s | 替换,替换指定的字符串 | 
| d | 删除选定的行 | 
| a | 新增,在指定行的下面插入一条新的内容 | 
| i | 新增,在指定行的上面插入一条新的内容 | 
| c | 整行替换为指定的内容 | 
| y | 字符替换(转换前后的字符长度必须保持一致) | 
| p | 打印 | 
| r | 支持扩展正则表达式(读取和输出) | 
所有的操作符最好用单引号引起来的,用双引号可能会有歧义
练习
-  
sed的打印功能
 


 
-  
sed的删除功能
 

-  
sed对文件内容进行替换
 
s只能对字符串,s/旧字符/新字符/操作符
g 把所有匹配标准的字符串全部替换,只在替换中生效
c 整行替换 /旧字符/c 新字符
y只能单个字符,且字符串长度要一致 y/旧字符/新字符/




-  
sed的插入和新增
 
a 新增 下一行
i 新增 上一行
r 读取然后写入
$a 把内容直接插入到文件的最后一行
$i 把内容直接插入到文件的最后一行和倒数第二行之间
$r 直接读取文件的内容,然后输出到目标文件的行尾

-  
脚本模式
 
#f脚本模式,在第一个文件当中写好了替换的命令或者其他的sed操作,用第一个的脚本修改第二个文件
sed -f 文件1 文件2
-  
不删除文件,只清空文件的内容
 
sed -i 'd' 文件名
cat /dev/null > 文件名
-  
sed当中的字符串和字符位置的交换
 

-  
取出版本号
 

-  
查看指定时间内的所有日志
 
sed -n '/Nov 27 12:32:41/,/Nov 27 13:30:01/p' /var/log/syslog #按时间查找



















![[VSCode] vscode下载安装及安装中文插件详解(附下载文件)](https://i-blog.csdnimg.cn/direct/0156d22a822c43a79de3edd08d55e450.png)