一.sed简介
sed是stream editor(流编辑器)的缩写,简称流编辑器,用来处理文件的
sed是一行一行读取文件内容并按照要求进行处理,把处理后的结果输出到屏幕上
1.1sed如何处理文件
1.首先sed读取文件中的一行内容,把其保存在一个临时缓冲区中(也称为模式空间)
2.根据需求处理临时缓冲区的行内容,完成后将该结果发送到屏幕上
1.2总结:
1.sed把每一行都存在临时缓冲区中,对这个副本进行编辑,所以不会直接修改源文件
2.sed主要用来自动编辑一个或多个文件;简化对文件的反复操作,对文件进行过滤和转换操作
二、sed的如何使用
sed语法格式有2种,一种是命令行模式 ;另外一种脚本模式
1、命令行语法格式
sed [options] '处理动作' 文件
选项:
-e 多次编辑
-n 取消默认输出(不打印模式空间内容)
-r 使用正则
-i 原地编辑(修改源文件)
-f 指定sed的脚本文件名
处理动作: 都要放在单引号里面
p 打印
i 在指定行之前插入内容
a 在指定行之后插入内容
c 替换指定行内容
d 删除指定行
使用说明
准备文件:
[root@bogon ~]# cat a.txt
hello world
886
qwe
① 对文件进行增删改查操作
语法: sed 选项 '定位+命令' 文件
1)打印文件内容
sed '' a.txt 不做操作,查看文件内容
sed -n 'p' a.txt 打印每一行,并取消默认输出
sed -n '1p' a.txt 打印第一行
sed -n '2p' a.txt 打印第二行
sed -n '1,3p' a.txt 打印1到3行
sed -n '$p' a.txt 打印最后一行
2)增加文件内容 (a:下面插入,i:上面插入)
sed 'iiou' a.txt 在每一行上面插入指定内容(iou)
sed 'iaou' a.txt 在每一行下面插入指定内容(iou)
sed '2iiou' a.txt 在第二行上面插入指定内容(iou)
sed '2aiou' a.txt 在第二行下面面插入指定内容(iou)
sed '$iiou' a.txt 在最后一行上面插入指定内容(iou)