Linux_三剑客_sed
【概念】
sed是linux中提供的一个外部命令,是一个行(流)编辑器,非交互式的对文件内容进行增删改查的操作,
使用者只能在命令行输入编辑命令,指定文件名,然后再屏幕上查看输出。和文本编辑器有本质的区别
【区别】
文本编辑器:编辑对象是文件
行编辑器 : 编辑对象是文件中的行(一般用于配置文件信息)
日志文件信息(grep ,awk 分析)
【执行原理】
【命令语法格式】
sed 参数 '条件 动作 ' 文件信息
【参数】
-n --- 取消默认输出
-i --- 真正修改文件内容 -i.bak 修改文件时,会自动创建备份文件
-e --- 扩展识别多个动作信息
-r --- 识别扩展正则
【指令(动作)】
p【print】 --- 将指定信息进行输出
d【delete】--- 删除指定信息
i【insert】--- 在指定信息行上面插入信息 【i.bak】
a【append】--- 在指定信息行下面添加信息
s【substitute】--- 替换/取代
g --- 全局替换
c --- 将整行信息做替换
【命令操作:】
【sed查询操作: 过滤信息】
1.按照文件行进行查询:
--按照文件指定单行信息进行过滤:
--按照文件指定多行信息进行过滤
1) 过滤连续多行信息 1-3行信息
2) 过滤不连续多行信息 1,3,7行信息
2.按照文件字符信息过滤:
按照单个字符信息过滤文件内容
按照多个字符信息过滤文件内容
按照字符内容信息进行连续过滤
特殊情况01:
特殊情况02:
2) 按照字符内容信息进行不连续过滤
【sed删除操作】
指定行信息进行删除
-i --- 真正修改文件内容
不加-i表示只是对模式空间里面数据进行处理,不会影响真实文件数据
【删除执行原理】
01. 打开person.txt文件
02. 读取文件中内容信息, 并将内容放入到模式空间中
03. 会根据模式空间里面读取到的内容, 生成一个临时文件person_tmp.txt
04. 关闭person.txt文件
05. 将临时文件指定内容进行删除处理
06. 将临时文件重命名为person.txt
删除文件的空行
sed命令删除操作时,最好对源文件进行备份
PS: -i参数使用时放在所有参数的最后面
【sed添加操作】
指定信息一行前面或者一行后面添加新的信息
练习题:
01. 文件末尾添加 一行新信息
02. 文件末尾添加 两行新信息
03. 文件第三行后面添加 文件第五行前面插入
真正添加信息
【sed修改操作:】
借助()后项引用前项
--指定行的末尾添加
【企业案例,批量修改文件名称】
【专业修改命令】
【01. 利用sed命令取出IP地址】
【02. 批量创建用户并设置随机密码】