sed基础介绍
1、课程知识概述部分
1)三剑客sed命令概述介绍
2)三剑客sed命令执行原理 命令的基本语法
3)三剑客sed命令实操练习 增(添加信息)删 改(修改) 查(查找)
4)编写脚本:系统基础优化脚本
编写脚本--放在系统中--执行脚本--全部优化(省事)
2、课程知识回顾
1)基础正则符号:7个 ^ $ . * \ [ ] [^]
2)扩展正则符号:5个 ? + {} | ( )
扩展正则使用:
grep -E == egrep
sed -r
3)总结grep命令参数 筛选信息
-i ----忽略大小写搜索信息
-n ----搜索信息后显示行号
-c -----统计筛选出来的行数
-v -----将搜索信息进行取反
-o ----只输出显示匹配信息
-w -----按照字符串匹配信息
-A ----过滤指定内容之后的信息
-B ----过滤指定内容之前的信息
-C ----过滤指定内容上下几行的信息
-E-----识别扩展正则信息
-r ------递归搜索指定的数据内容[]
3、三剑客命令sed概述介绍
sed - stream editor for filtering and transforming text
1)可以查找过滤筛选出指定的信息
2)擅长编辑文件的内容信息
3)擅长对文件的行进行操作
4、三剑客命令sed执行原理
1)执行原理过程:
2)命令语法结构:
sed 【参数】(看情况添加) '条件、指令(处理的动作)' 文件信息(处理的文件)
·条件定义:根据行号 内容 正则信息 进行处理
·指令定义:满足条件的信息处理动作(添加 删除 修改 输出)
5、三剑客sed命令实操练习
准备测试文件:
cat >>person.txt<
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
EOF
1)熟悉sed命令查询操作(输出操作)
(1)根据行号进行筛选
·单行信息显示
·多行信息显示----连续的
·多行信息显示----不连续的
(2)根据字符信息进行筛选
·单行信息输出
·多行信息输出-----连续的
有开头就继续
·多行信息输出-----不连续的
2)熟悉sed命令查询操作
(1)根据行号进行删除
·单行信息删除
·多行信息删除---连续的
·多行信息删除---不连续的
没有真正的删除,它是在内存中执行的[内存中执行
]
sed -i '6d' person.txt --- 真正删除文件信息
-i --- 将模式空间操作影响到磁盘中
将模式空间信息 --- 覆盖 --- 磁盘文件中[永久删除]
3)熟悉sed命令添加操作
(1)根据行号添加信息 (a 附加 寓意后面) (i插入 前面添加)($表示最后一行 在最后一行添加信息)
·单行添加信息(a)
·多行添加信息---连续的
·多行添加信息---不连续的
·文件最后添加东西
[root@moban /oldboy 11:42:06]# cat person.txt
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@moban /oldboy 11:42:12]# sed '$aoldboy69' person.txt
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
oldboy69
(2)行前添加信息行(i)
[root@moban /oldboy 11:52:54]# cat person.txt
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
[root@moban /oldboy 11:52:58]# sed '1ioldboy69' person.txt
oldboy69
101,oldboy,CEO
102,zhaoyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
没有真正的添加,它是在内存中执行的[内存中执行
]
sed -i '1aoldboy69' person.txt --- 真正添加文件信息
-i --- 将模式空间操作影响到磁盘中
将模式空间信息 --- 覆盖 --- 磁盘文件中[永久删除]
4)熟悉sed命令替换操作
(1)根据行号搜索做替换
(2)多行替换---连续
(3)多行替换---不连续
sed命令使用忠告
1) sed命令操作时候要做备份
sed -i bak --- 在编辑文件时,直接多文件进行备份sed -rir '2s#(oldboy)#\169#g' person.txt
[root@oldboy69 oldboy 12:52:22]# ll person.txt*
-rw-r--r--. 1 root root 96 Dec 19 12:52 person.txt
-rw-r--r--. 1 root root 107 Dec 19 12:46 person.txt.bak
-rw-r--r--. 1 root root 94 Dec 19 12:52 person.txtr
说明: sed命令在是使用时, 需要用到多个参数, 要将-i参数写在所有参数后面
2) sed命令在使用时, 一定不要让-n参数和-i参数一起使用
7、sed的命令课程总结
1)sed命令作用说明
·过滤筛选文件内容信息
·擅长对指定行进行操作
·擅长直接编辑文件内容
2)sed命令执行原理
3)sed命令语法格式 sed 参数 '条件 指令' 文件信息
参数:
-n -----取消输出模式
-i ------真正编辑文件内容
-r ----识别扩展正则
-e -----识别多个条件操作
指令
p ---输出模式
d ----删除操作
a ----附加操作
i ----插入操作
s ----替换操作
g ------全局替换
r ------
c -----
条件信息
$
n
n,m
/字符/
\
4)sed命令实践用法
·如何进行查询操作 根据行/根据字符
·如何进行删除操作 根据行/根据字符
·如何进行添加操作 根据行/根据字符
·如何进行替换操作 根据行/根据字符 后向引用前项替换() \1