sed应用

一.sed

1.Sed概述

  • sed编辑器时一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流

  • sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要存储在一个命令文本文件中

2.sed命令的格式

sed [option]... 'script;script;...'   [input  file...]选项         自身脚本语法         支持标准输入管道sed -e '操作' 文件1 文件2sed -n -e '操作' 文件1 文件2 sed -f 脚本文件 文件1 文件2 sed -i -e '操作' 文件1 文件2

3.常用选项

-e 或 - -expression=∶ 多点编辑-f 或- -file=∶表示用指定的脚本文件来处理输入的文本文件。-h 或- -help∶显示帮助。-n∶ 不输出模式空间内容到屏幕,即关闭自动打印,加p,又恢复自动打印-i∶ 备份文件文件并原处编辑文件内容-r:使用扩展正则表达式

4.语法字母(在单引号中使用)

s∶替换,替换指定字符。d∶删除,删除选定的行。3d,删除第三行a∶ 后面追加,在当前行下面增加一行指定内容。i∶ 上面插入,在选定行上面插入一行指定内容。c∶ 替换,将选定行替换为指定内容。Y∶ 字符转换,转换前后的字符长度必须相同。p∶ 打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容; 如果有非打印字符,则以 AscII码输出。其通常与_n"选项一起使用。3p 第三行;1,3p 1-3行;$p 最后一行=∶显示打印行号。l(小写L)∶打印数据流中的文本和不可打印的ASCII字符(比如结束符s、制表符\t)q:提前退出。3q 第三行退出

二.使用示例

1.打印全部内容

sed ' '      #交互模式输入一行,自动打印一行相同的sed -n ' '   #交互模式输入一行,关闭自动打印sed -n ' p'  #加上p又恢复自动打印,与sed ' '相同

2.查看文件,打印全部内容

sed ' ' /etc/fstabsed -n ' p' /etc/fatab

3.打印指定行内容

sed -n '4p' /etc/fstab
#打印第四行内容

4.打印指定多行内容

ifconfig ens33 |sed -n '2,4p'
#打印网卡信息的2至4行cat -n /etc/passwd |sed -n '2,+4p'
#打印第2至6行,即第二行开始往后四行

5.打印多行后退出

sed  '3q' /etc/passwd
#打印三行后退出

6.打印最后一行,使用通配符$

sed -n '$p' /etc/passwd

7.支持正则表达式,打印范围内容

sed -n '//,//p' 文件名
#第一个//表示开头位置,第二个//表示结尾位置sed -n '/^r/,/^f/p' /etc/passwd
#以r开头 f开头结尾 第二轮以r开头 后面没有以f开头结尾 则显示全部

8过滤关键字

sed -n '/root/p' /etc/passwd
#从第二行开始,找到root为止

9.‘#,/关键字/p’ 从第#行开始匹配

sed -n '2,/root/p' /etc/passwd
#从第二行开始,找到root为止

10.‘/关键字/,#’ 找到第#个关键字为止

sed -n '/root/,3p' /etc/passwd
#找到第三个root位置

11.打印文本的奇数和偶数行

seq 10 |sed -n '1~2p'
seq 10 |sed '2~2d'
#打印奇数行seq 10 |sed -n '2~2p'
seq 10 |sed '1~2d'
#打印偶数行 

12.删除指定行

#删除指定行并不是真正删除,只是将删除了的结果显示出来,并不是真正删除了
cat 1.txt |sed '3d'
#删除第三行并显示出来

13.删除指定的多行

sed '2,4d' seq.txt 
#删除连续的2到4行

14.删除文本中的空行

sed '/^$/d' /opt/seq.txt 

15.删除以指定字符结尾的行及取反

sed '/nologin$/!d' /etc/passwd
#删除不是以nologin结尾的行

16.先备份内容再删除

sed -i.bak '3d' 1.txt
#原文件删除第三行,并原文备份

17.在指定行后插入

sed -i '2a charu' 1.txt
#在第二行后插入内容

18.插入空行,修改文件的换行,要多加一个\

sed -i '2a\\n charu' 1.txt

19.替换行内容

sed -i '2ctihuan' 1.txt
#将第二行的内容替换成tihuan

20.取反(使用感叹号!)

seq 10|sed -n '2!p'
#不显示第二行

21.搜索替代 

格式:sed 行范围 s/旧字符串/新字符串/替换标记

替换标记:

  • 数字:表明新字符串将替换第几处匹配的地方

  • g : 表明新字符串将会替换所有匹配的地方

  • p : 打印与替换命令匹配的行,与 -n 一起使用

  • w 文件 :将替换的结果写到文件中

修改selinux开机不自启配置文件
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 

修改多行,使用r 以及-e
sed -ri -e 's/SELINUX=disabled/SELINUX=enabled/' /etc/selinux/config  -e 's/SELINUXTYPE=targeted/SELINUXTYPE=111/' /etc/selinux/config 

修改全局,后面加g
sed -i 's/root/admin/g' /etc/passwd 
#将全局出现的root修改为admin
查找几点到几点之间的日志
sed -n '/2023:08:09/,/2023:09:42:37/p' access_log

22.分组调用

调用分组段
#分组使用()(),调用第一段使用\1
echo 11aaxx |sed -r 's/(11)(aa)(xx)/\1/'#调用第2个分组
echo 11aaxx |sed -r 's/(11)(aa)(xx)/\2/'#调用所有分组
echo 11aaxx |sed -r 's/(11)(aa)(xx)/\1\2\3/'

提取IP地址
ifconfig ens33 |sed -rn '2s/.*(inet) ([0-9.]+)  (netmask) ([0-9.]+)  (broadcast) ([0-9.]+).*/\2/p'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/228253.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计网Lesson3 - 计算机网络评价指标与封包解包

文章目录 计算机网络的性能指标1. 速率2. 带宽3. 吞吐量4. 时延5. 时延带宽积6. 往返时间7. 利用率8. 数据的解包和封包 计算机网络的术语实体![实体](https://img-blog.csdnimg.cn/direct/cbf4ca9ed5ab4df290b5a17b4642c6a1.png)协议服务 计算机网络的性能指标 1. 速率 数据…

MagicPipe3D地下管网三维建模数据规格

经纬管网建模系统MagicPipe3D(www.magic3d.net)本地离线参数化构建三维地下管网(含管道、接头、附属物等)模型,输出标准3DTiles、Obj等格式,支持Cesium、Unreal、Unity等引擎可视化查询。MagicPipe3D三维建…

戴尔科技推出全新96核Precision 7875塔式工作站

工作站行业一直是快节奏且充满惊喜的。在过去25年中,戴尔Precision一直处于行业前沿,帮助创作者、工程师、建筑师、研究人员等将想法变为现实,并对整个世界产生影响。工作站所发挥的作用至关重要,被视为化不可能为可能的必要工具。如今,人工智能(AI)和生成式AI(GenAI)的浪潮正在…

坚鹏:贵州银行西南财经大学零售业务数字化转型与场景营销策略

中国银保监会2022年1月正式发布了中国银保监会发布《关于银行业保险业数字化转型的指导意见》,这标准着中国银行业从局部的数字化转型向全面的数字化转型转变,进一步加速了银行数字化转型高潮的到来。 《关于银行业保险业数字化转型的指导意见》提出明确…

figma 基础使用——准备阶段

1. 注册账号 2. figma有客户端也有网页端,使用注意同步字体 之后点击下载window installeer 字体 3. 安装 Figma汉化包 通过figma.cool 网站,下载离线的汉化包 之后通过谷歌的扩展程序添加

直播场景视频和特效解决方案

直播已经成为企业与消费者互动的重要方式,如何提供优质的直播内容,提升直播效果,以及实现直播内容的商业化转化,一直是企业面临的重要挑战。为此,美摄科技提供了一套全面的直播场景解决方案,帮助企业解决这…

【链接MySQL】教你用VBA链接MySQL数据库

hi,大家好呀! 之前呢,给大家分享过一个自制链接表管理器的文章,文章中有链接SQL Server数据库的代码,大家对这一段代码比较有兴趣,既然大家有兴趣,那我们今天就来讲一下链接数据库的代码。 这…

六、Lua运算符

文章目录 一、Lua 运算符(一)算术运算符(二)关系运算符(三)逻辑运算符(四)其他运算符 二、运算符优先级 一、Lua 运算符 运算符是一个特殊的符号,用于告诉解释器执行特定…

集成IDE开发环境,Java开发工具IntelliJ IDEA 2023中文

IntelliJ IDEA 2023是一款功能强大的软件,其为程序员提供了一款先进的集成开发环境。它以智能、高效和人性化为主要特点,致力于提高开发人员的生产力,帮助程序员更快、更好地编写代码。IntelliJ IDEA 2023支持多种语言和框架,包括…

MFC哈希实现 目标:知道初始密码的人,才能改密码及登录。只知道登录密码只能登录。避免密码直接写在代码里或本地,通过软件评估报告。----安全行业基础5

一种简单的登录设计,密码保存在本地。(直接MD5不安全,别人可以更换本地的密码,得再加一层算法就相对安全一点) 当然也可以用加密机或专门存密码的系统来实现,就过于复杂。目标:1、为了避免密码直接写在代码…

网络安全小白自学

一、网络安全应该怎么学? 1.计算机基础需要过关 这一步跟网安关系暂时不大,是进入it行业每个人都必须掌握的基础能力。 计算机网络计算机操作系统算法与数据架构数据库 Tips:不用非要钻研至非常精通,可以与学习其他课程同步进行。 2.渗透技…

常用的Linux的指令

目录 常用指令 1、文件和目录操作: 2、文件查看和编辑 3、系统信息 4、进程管理 5、用户和权限 6、网络操作 7、压缩和解压 8、软件包管理 常用指令 1、文件和目录操作: ls:列出目录内容 cd: 切换目录 pwd:显…