一:sed简介
Stream EDitor --流/行 编辑器,它一次性处理文件的一行内容。处理时,会把当前的行存储在临时缓冲区中,称为“模式空间”,接着使用Sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕输出。然后读入下行,执行下一个循环。如果没有使用诸如“D”的特殊命令,那会在两个循环之间清空模式空间(即覆盖第一次循环的内容),但不会清空保留空间。如此不断重复,直到文件末尾。文件内容并没有改变,除非使用重定向存储输出。
二:功能
主要用于自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等
三:使用场景、
-
编辑相对交互式文本编辑器而言太大的文件;
-
编辑命令太复杂,在交互式文本编辑器中难以输入的情况;
-
对文件扫描一遍,但是需要执行多个编辑函数的情况;
四:用法
五:实例演示
显示第2-5行
打印奇数行:(表示从1开始,步进为2)
同理打印偶数行:(表示从2开始,步进为2)
使用简单的正则表达式匹配所需模式的行
也可以将所要执行的script单独放在一个文件中,然后直接调用
-f选项:从指定文件中读取脚本内容
ctrl+D保存退出
-d选项:删除指定行
!:取反
a:在指定行后追加文本内容
c:表示代替
1-5行用!!!代替
w:将符合条件的内容存到指定文件中
可以用于在某个脚本中追加内容,但原脚本文件不会变化
可以使用-i.bak 选项使文件备份并在原文件编辑且保存编辑的内容
注意,当追加的内容也带有引号时,可以使用双引号与单引号进行区分