三剑客-sed
1.sed命令概述说明:
字符流编辑工具(行编辑工具)
2.sed命令作用说明:
(1)擅长对行进行操作处理
(2)擅长将文件的信息进行修改调整/删除
3.sed具体功能
(1)文件中添加信息的能力(增)
(2)文件中删除信息的能力(删)
(3)文件中修改信息的能力(改)
(4)文件中查询信息的能力(查)
4.sed命令的语法格式
sed [OPTION]… {script-only-if-no-other-script} [input-file].
命令 [参数] {条件-处理} 处理文件
5.sed命令执行原理

命令执行原理
6.sed命令实践操作
创建测试环境
cat >shuai.txt<<EOF
101,zhaosan,CEO
102,zhangsi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
EOF
(1)sed命令查询信息方法
a.根据文件的行号进行查询
#打印单行信息
[root@shuai ~]# sed -n '2p' shuai.txt
102,zhangsi,CTO
#打印第一行到第三行的信息
[root@shuai ~]# sed -n '1,3p' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
103,Aboluo,COO
#打印第一行和第三行的信息
[root@shuai ~]# sed -n '1p;3p' shuai.txt
101,zhaosan,CEO
103,Aboluo,COO
b.根据文件的内容进行查询
#将有zhaosan的打印出来
[root@shuai ~]# sed -n '/zhaosan/p' shuai.txt
101,zhaosan,CEO
#将zhaosan到Aboluo的行打印出来(连续)
[root@shuai ~]# sed -n '/zhaosan/,/Aboluo/p' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
103,Aboluo,COO
#将zhaosan和Abolu的行打印出来(不连续)
[root@shuai ~]# sed -n '/zhaosan/p;/Aboluo/p' shuai.txt
101,zhaosan,CEO
103,Aboluo,COO
(2)sed添加信息的方法
a.在文件的第一行添加信息
#在文件第一行添加:100,lisi,OOO
[root@shuai ~]# sed '1i100,lisi,OOO' shuai.txt
100,lisi,OOO
101,zhaosan,CEO
102,zhangsi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
b.在文件的最后一行添加信息
#在文件最后一行添加:106,wangqi,YOO
[root@shuai ~]# sed '$a106,wangqi,YOO' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
106,wangqi,YOO
c.在文件上下添加一行信息
#在第二行前和第三行后添加信息
[root@shuai ~]# sed -e '2ioldboy.txt' -e '3aolddog.txt' shuai.txt
101,zhaosan,CEO
oldboy.txt
102,zhangsi,CTO
103,Aboluo,COO
olddog.txt
104,yy,CFO
105,fergouzi,CIO
d.添加多行信息
#在文件结尾添加多行信息
[root@shuai ~]# sed '$adashazi\ndafengzi' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
dashazi
dafengzi
(3)sed命令删除信息方法
a.删除单行信息
#删除第三行信息
[root@shuai ~]# sed '3d' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
104,yy,CFO
105,fergouzi,CIO
b.删除多行信息
#删除第三行到第五行
[root@shuai ~]# sed '3,5d' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
#删除第三行和第五行
[root@shuai ~]# sed '3d;5d' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
104,yy,CFO
#删除有zhaosan的行
[root@shuai ~]# sed '/zhaosan/d' shuai.txt
102,zhangsi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
c.删除空行
[root@shuai ~]# sed '/^$/d' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
[root@shuai ~]# sed -n '/^$/!p' shuai.txt
101,zhaosan,CEO
102,zhangsi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
(4)sed命令修改信息的方法
a.单个替换
#将zhaosan替换成dashazi
[root@shuai ~]# sed s#zhaosan#dashazi#g shuai.txt
101,dashazi,CEO
102,zhangsi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
b.修改文件并备份文件
[root@shuai ~]# sed -i.bak s#zhangsi#dafengzi#g shuai.txt
[root@shuai ~]# cat shuai.txt
101,zhaosan,CEO
102,dafengzi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
[root@shuai ~]# ls
shuai.txt.bak shuai.txt
c.后向引用前项,取IP地址
[root@shuai ~]# ip a s eth0|sed -nr '3s#.*inet (.*)/24.*#\1#gp'
10.0.0.200
d.将第一行替换成dashazi
[root@shuai ~]# sed '1cdashazi' shuai.txt
dashazi
102,dafengzi,CTO
103,Aboluo,COO
104,yy,CFO
105,fergouzi,CIO
总结:sed命令指令信息
p print 输出信息
i insert 插入信息,在指定信息前边插入新的信息
a append 附加信息,在指定信息后边附加新的信息
d delete 删除
s substitute 替换信息
g 全局替换
c 替换修改一整行信息
7.sed命令的参数信息
-n 取消默认输出
-r 识别扩展正则
-i 真实编辑文件(将内存中的信息覆盖到磁盘中,放到所有参数后边)
-e 识别sed命令的多个指令
练习:将shuai.txt修改为shuai.jpg
环境准备
[root@shuai ~/shuai]# touch shuai{01..10}.txt
[root@shuai ~/shuai]# ls
shuai01.txt shuai03.txt shuai05.txt shuai07.txt shuai09.txt
shuai02.txt shuai04.txt shuai06.txt shuai08.txt shuai10.txt
解答
[root@shuai ~/shuai]# ls shuai* |sed -r 's#(.*).txt# mv & \1.jpg#g'
mv shuai01.txt shuai01.jpg
mv shuai02.txt shuai02.jpg
mv shuai03.txt shuai03.jpg
mv shuai04.txt shuai04.jpg
mv shuai05.txt shuai05.jpg
mv shuai06.txt shuai06.jpg
mv shuai07.txt shuai07.jpg
mv shuai08.txt shuai08.jpg
mv shuai09.txt shuai09.jpg
mv shuai10.txt shuai10.jpg
[root@shuai ~/shuai]# ls shuai* |sed -r 's#(.*).txt# mv & \1.jpg#g' |bash
[root@shuai ~/shuai]# ls
shuai01.jpg shuai03.jpg shuai05.jpg shuai07.jpg shuai09.jpg
shuai02.jpg shuai04.jpg shuai06.jpg shuai08.jpg shuai10.jpg
[root@shuai ~/shuai]# rename .jpg .txt shuai*
[root@shuai ~/shuai]# ls
shuai01.txt shuai03.txt shuai05.txt shuai07.txt shuai09.txt
shuai02.txt shuai04.txt shuai06.txt shuai08.txt shuai10.txt
三剑客-sed的更多相关文章
- Linux(8):linux三剑客sed和awk & Shell 编程(1)
linux 三剑客 之 sed # sed 是什么? # sed : 字符流编辑器 Stream Editor: sed 擅长 替换.取行等 # sed 的功能与版本: 处理纯文本文件.日志.配置文件 ...
- 文本三剑客---sed 基础
sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反.在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式的插入.删除或者替换数据中的文本.流编辑器则会自 ...
- Linux三剑客-SED
1.Sed是什么 Sed:字符流编辑器,Stream Editor 2.Sed功能与版本 处理日志文件,日志,配置文件等 增加.删除.修改.查询 sed --version 可以通过man sed 来 ...
- 三剑客-sed(简写)
打印操作:n命令所有行打印,第二行打印两遍 sed '2p' passwd只打印第二行sed -n '2p' passwd打印1~3行 sed -n '1,3p' passwd 打印带有'root'的 ...
- Linux--shell三剑客<sed>--07
1.sed(stream editor): 作为行编辑器,对文本进行编辑(以行为单位) 默认显示输出所有文件内容 注意:sed编辑文件,却不改变原文件 2.sed的工作原理: 指定一个文本文件,依次读 ...
- 三剑客-sed awk
目录 1.sed 2.awk 1.sed //sed命令 #语法说明:命令 参数 条件+处理= (指令) 处理文件信息 字符流编辑工具(行编辑工具)==按照每行中的字符进行处理操作 ). 擅长对行进 ...
- Linux文本三剑客-sed
sed工作原理: sed: Stream Editor.流编辑器 --- 属于行编辑工具 sed和vim一样都是文本编辑工具. 行编辑工具:一行一行处理文件内容 全屏编辑工具:一次性将文件内容加载到内 ...
- Linux三剑客sed
注意sed和awk使用单引号,双引号有特殊解释 sed是Stream Editor(字符流编辑器)的缩写,简称流编辑器. sed是操作.过滤和转换文本内容的强大工具. 常用功能包括结合正则表达式对文件 ...
- Linux 三剑客之sed
目录 Linux 三剑客之sed 命令补充: sort命令 uniq命令 cut命令 tr命令 wc命令 三剑客 - sed 编辑模式: 定位分类: 实例如下: d模式--删除模式 p模式--打印 a ...
随机推荐
- 1小时快速搭建基于Azure Custom Vision和树莓派的鸟类分类和识别应用
1. 引言 最近在微软Learn平台学习Azure认知服务相关的内容,看到了一个有关"使用自定义视觉对濒危鸟类进行分类"的专题,该专题的主要内容就是使用 Azure Custom ...
- 怎么用优启通安装win7 !!!!好好好20191020
怎么用优启通安装win7 PE技术探索在国内属于前沿梯队.相关PE工具更新的非常及时,两个月一更新,很赞. 尤其是论坛代表作之一:EasyImageX系统备份恢复镜像工具(集成在PE里面),可以说是用 ...
- swagger上的接口写入数据库
一.依赖 virtualenv -p python3.6 xx pip install scrapy pip install pymysql 二. 1.创建项目和spider1 scrapy star ...
- 1.7 Systemd初始化进程
1.7 Systemd初始化进程 Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linu ...
- 第七章 DevOps工具链
DevOps工具生态圈 协同开发工具 敏捷开发 可视化 加强团队沟通协作 数据分析 协同开发 持续集成工具 Jenkins 自动化编译 自动化测试 自动化部署 丰富的插件库 版本管理工具 Git 简介 ...
- 使用指定源安装python包
对于经常需要按照那个python包的同学,外网下载比较慢的话,可以使用公司内部的镜像进行安装 eg: pip install django -i http://mirrors.***.com.cn/p ...
- [leetcode] (周赛)869. 重新排序得到 2 的幂
869. 重新排序得到 2 的幂 枚举排列,然后验证.比较暴力. 其实好一点的做法应该反过来,先把int范围下的2的N幂算出来,然后一个一个验证给出的数能不能拼成. class Solution { ...
- 一文读懂一条 SQL 查询语句是如何执行的
2001 年 MySQL 发布 3.23 版本,自此便开始获得广泛应用,随着不断地升级迭代,至今 MySQL 已经走过了 20 个年头. 为了充分发挥 MySQL 的性能并顺利地使用,就必须正确理解其 ...
- GO学习-(26) Go语言操作mongoDB
Go语言操作mongoDB mongoDB是目前比较流行的一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. ...
- Scrapy爬虫返回302重定向问题解决方法
scrapy爬虫遇到爬取页面时302重定向导致response页面与实际需要爬取的页面信息不一致,导致无法正常获取信息,查看日志存在 scrapy.downloadermiddlewares.redi ...