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. LVS跨网段DR模型

    客户端IP地址:172.16.8.147 路由器服务器IP地址:172.16.8.167内网IP地址:192.168.1.3 一.将客户端的网关修改为路由服务器IP地址 vim ifcfg-ens33 ...

  2. 【二】Kubernetes 集群部署-kubeadm方式(亲测)

    一.概述 本次部署 Kubernetes 集群是通过 kubeadm 工具来进行部署, kubeadm 是 Kubernetes 官⽅提供的⽤于快速部署 Kubernetes 集群的⼯具,利⽤其来部署 ...

  3. Envoy:主动健康监测

    实验文件 docker-compose version: '3' services: envoy: image: envoyproxy/envoy-alpine:v1.15-latest enviro ...

  4. $(cd "$(dirname "$0")",pwd) 解析

    xx.sh 文件内容如下: #!/bin/bash BIN_FOLDER=$(cd "$(dirname "$0")";pwd) echo $BIN_FOLDE ...

  5. 001.Ansible简介与基本安装

    一 自动化运维 1.1 运维的自动化发展历程 IAAS:infratructure as a Service PAAS:platform as a Service 平台及服务 SAAS:softwar ...

  6. MySQL8 配置远程连接

    引言 MySQL8 默认安装后只有本机能访问,如果需要远程连接 MySQL 将无法访问 查看 root 用户权限 进入 mysql 表 select user,host,plugin from use ...

  7. python基础之流程控制(if判断和while、for循环)

    程序执行有三种方式:顺序执行.选择执行.循环执行 一.if条件判断 1.语句 (1)简单的 if 语句 (2)if-else 语句 (3)if-elif-else 结构 (4)使用多个 elif 代码 ...

  8. linux初级之总结复习

    一.linux命令复习 1.ls:列出当前目录下的文件 -h: -l: -d: -a: 2. man: 命令帮助手册 3. cd: 切换目录 -:  ~: ..: cd: 4. pwd: 显示当前工作 ...

  9. 机器人的运动范围--BFS

    地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也不能进入行坐标和列 ...

  10. 解决element-ui el-input输入框内容无法修改的问题

    wqy的笔记:http://www.upwqy.com/details/271.html el-input  中  使用 :value 时  input输入的内容无法修改 <el-input : ...