这里写目录标题
课程介绍部分
sed命令使用方法
课程回顾
正则符号
基础正则符号
^ 以什么开头的信息进行匹配
$ 以什么结尾的信息进行匹配
^$ 表示匹配空行
. 匹配任意一个且只有一个字符
* 匹配前一个字符出现0次或者多次
.* 匹配所有任意信息 类似于通配符*
\ 转义字符 将有意义的字符信息,转义成为普通字符进行识别, -->找出文件中以.结尾的信息
将特殊的拓展的正则符号,转换成基础符号
将没有意义的字符信息,转换成有意义的字符信息
[] 匹配多个字符信息,多个字符匹配时,是或者的关系
[ok]在文件中找有o的字符信息,找文件中有k的字符信息
ps:中括号 ,讲一个字符串信息拆分成一个一个字符进行匹配
[^]对匹配的字符信息进行排除
[^ok]在文件中找有o的信息 找到有k的信息,进行排除不要显示,显示其他信息
扩展正则符号
在这写grep前面都需要加上e
grep命令识别扩展正则:egrep
sed命令识别拓展正则:sed -r
+ 匹配前一个字符连续出现1次或者多次
| 利用竖线可以匹配多个字符串的信息
() 将多个字符信息汇总成总体进行过滤
进行后项引入前项
{} 指定匹配前一个字符出现了多少次
{n,m}至少连续n次,最多m次
{n}匹配只连续n次的信息
{n,}至少连续n次,最多不限
{,m}至少连续0次,最多m次
? 匹配前一个字符连续出现0次或者1次
sed命令
sed概述
字符流编辑工具==按照每行中的字符进行处理操作
sed命令作用说明
擅长对行进行操作
擅长文件的内容信息进行修改调整/删除
编写脚本:修改文件内容时
网络服务中的ip地址进行修改: 50台主机迁移机房–新机房
第一个步骤:找到网卡的配置文件 eth0
第二个步骤:重启网络服务
第三个步骤:检查测试
自动修改网卡地址脚本
第一个步骤:修改网络地址
sed -i 地址 ifcfg-eth
第二个步骤:重启网络服务
systemctl restart network
第三个步骤:将网卡信息存储到文件中 共享存储的位置
具体功能
向文件中添加信息的能力
向文件中删除信息的能力
向文件中修改信息的能力
向文件中查询信息的能力
sed命令语法信息
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
命令 参数 条件/处理 处理文件信息
显示出文件有oldboy行的信息
sed命令执行原理
sed命令实践操作
sed命令查询信息方法
根据文件内容的行号查询
根据文件内容的信息查询
查看测试
根据内容信息,输出单行内容
将有oldboy的行信息找出来
根据内容信息,输出多行内容
将有oldboy到alex行的信息都输出出来
根据内容信息,输出多行内容(不连续)
将有oldboy和alex的行的信息都输出出来
根据文件内容的行好进行显示
显示单行信息
根据行号,显示多行信息
根据行号,显示多行信息(不连续)
添加测试
在文件的第一行添加信息:100,oldgirl,ufo
记住是第一行的上面用的是 i
在文件的最后一行添加信息 107
如果在下面要用到a
$表示结尾
删除测试
删除单行信息
删除多行信息
删除第二行到第第六行
删除有oldboy的行
删除第三行和第六行
修改信息
sed 's#原有内容#修改后内容#g' 文件信息
总结sed命令
p print 输出
I insert 插入
appedn 附加信息,在指定信息后面附加信息
d delete 删除
s subtitute 替换信息 s###g(g代表全局替换)
c 替换修改一整行的信息
测试
在第三行后面添加oldboy.txt
在第二行前面添加oldboy.txt信息
在有oldboy行的前面添加oldgirl信息 后面添加olddog信息
记住了,sed是命令 可以有参数 后面接着是条件 /oldboy 或者是第几行
文件中添加内容方法
01 vi/vim
02 cat >>xxx<eof
03 echo -e “xxx/nxxx”
04 sed ‘na/I 内容信息’ 文件
问题:如何利用sed命令取消空行显示
sed '/^$/d' person.txt
利用sed命令取出ip地址
第一个历程,取出ip地址的行
第二个历程,取出ip地址
踩坑
n和i参数不能同时使用,会将文件内容清空,在替换文件内容的时候,一定不能让n和i参数同时出现
批量修改文件名
ls mmz*.txt|sed -r 's#(.*)txt#mv & \1jpg#g' |bash
重命名
rename .txt .jpg oldboy*.txt
命令 文件名称需要修改的部门信息 修改成什么信息 将什么样的文件进行修改
再改变回来