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的更多相关文章

  1. Linux(8):linux三剑客sed和awk & Shell 编程(1)

    linux 三剑客 之 sed # sed 是什么? # sed : 字符流编辑器 Stream Editor: sed 擅长 替换.取行等 # sed 的功能与版本: 处理纯文本文件.日志.配置文件 ...

  2. 文本三剑客---sed 基础

    sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反.在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式的插入.删除或者替换数据中的文本.流编辑器则会自 ...

  3. Linux三剑客-SED

    1.Sed是什么 Sed:字符流编辑器,Stream Editor 2.Sed功能与版本 处理日志文件,日志,配置文件等 增加.删除.修改.查询 sed --version 可以通过man sed 来 ...

  4. 三剑客-sed(简写)

    打印操作:n命令所有行打印,第二行打印两遍 sed '2p' passwd只打印第二行sed -n '2p' passwd打印1~3行 sed -n '1,3p' passwd 打印带有'root'的 ...

  5. Linux--shell三剑客<sed>--07

    1.sed(stream editor): 作为行编辑器,对文本进行编辑(以行为单位) 默认显示输出所有文件内容 注意:sed编辑文件,却不改变原文件 2.sed的工作原理: 指定一个文本文件,依次读 ...

  6. 三剑客-sed awk

     目录 1.sed 2.awk 1.sed //sed命令 #语法说明:命令 参数 条件+处理= (指令) 处理文件信息 字符流编辑工具(行编辑工具)==按照每行中的字符进行处理操作 ). 擅长对行进 ...

  7. Linux文本三剑客-sed

    sed工作原理: sed: Stream Editor.流编辑器 --- 属于行编辑工具 sed和vim一样都是文本编辑工具. 行编辑工具:一行一行处理文件内容 全屏编辑工具:一次性将文件内容加载到内 ...

  8. Linux三剑客sed

    注意sed和awk使用单引号,双引号有特殊解释 sed是Stream Editor(字符流编辑器)的缩写,简称流编辑器. sed是操作.过滤和转换文本内容的强大工具. 常用功能包括结合正则表达式对文件 ...

  9. Linux 三剑客之sed

    目录 Linux 三剑客之sed 命令补充: sort命令 uniq命令 cut命令 tr命令 wc命令 三剑客 - sed 编辑模式: 定位分类: 实例如下: d模式--删除模式 p模式--打印 a ...

随机推荐

  1. Zabbix 自动发现并监控磁盘IO、报警 引言

    引言 Zabbix并没有提供模板来监控磁盘的IO性能,所以我们需要自己来创建一个,由于一台服务器中磁盘众多,如果只有一两台可以手动添加,但服务集群达到几十那就非常麻烦,因此需要利用自动发现这个功能,自 ...

  2. Linux如何设置用户登录超时(闲置时间)vi /etc/profile ... export TMOUT=900

    Linux如何设置用户登录超时(闲置时间) 转载莫负寒夏ai 最后发布于2019-08-08 15:04:22 阅读数 1897  收藏 展开 1. 针对所有用户 # vi /etc/profile ...

  3. Ansible_实施处理程序

    一.Ansible配置处理程序 1.处理程序 1️⃣:处理程序是响应由其他任务触发的通知的任务 2️⃣:仅当任务在受管主机上更改了某些内容时,任务才通知其处理程序 3️⃣:每个处理程序具有全局唯一的名 ...

  4. Linux_网络进阶管理

    一.链路聚合 1.什么是链路聚合? 网卡的链路聚合就是将多块网卡连接起来,当-块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度. 2.链路聚合方式: ...

  5. 5.7 echo:显示一行文本

    echo命令 能将指定的文本显示在Linux命令行上.     -n    不要自动换行 -E    不解析转义字符(默认参数)   -e    若字符串中出现以下字符,则需要进行特别处理,而不会将它 ...

  6. 行业资讯 | Android WebView 致安卓应用闪退,mPaaS 助你规避这波 Bug

    根据外媒 9to5 Google 报道,3 月 23 日几个小时内,大量安卓用户遇到一些安卓应用连续闪退的情况,有人发现卸载安卓系统 WebView 就可以停止闪退.目前,谷歌已经发布了应用崩溃问题的 ...

  7. 只需5分钟!一文读懂CSS布局(二) -- flex布局

    目录 简介 基本概念 容器属性 1. flex-direction 测试代码 2. flex-wrap 3. flex-flow 4. justify-content 5. align-items 6 ...

  8. [leetcode] 874. 行走机器人模拟(周赛)

    874. 行走机器人模拟 模拟 描述方向时有个技巧:int[][] dx = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; 分别存储机器人向上.右.下.左走时,坐标应该如何变 ...

  9. npm ERR! Error: tunneling socket could not be established的解决问题

    一般是代理问题 可以通过在命令行运行下列命令解决: npm run server npm run webdriver-update

  10. 摄像头定位:ICCV2019论文解析

    摄像头定位:ICCV2019论文解析 SANet: Scene Agnostic Network for Camera Localization 论文链接: http://openaccess.the ...