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 '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'

相关文章:
sed应用
一.sed 1.Sed概述 sed编辑器是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要存储在一个命令文本文件中。 2.sed命令的格…...
Linux配置SFTP用户的详细过程
0. 背景 Linux机器上已有路径/data/tomcat/apache-tomcat-8.5.96/webapps/webroot,需要在该路径之下配置一个目录对外暴露给业务人员使用。业务人员使用sftp协议上传文件。 下面是相关配置: SFTP 用户名:iios SFTP主目录:/data/tomcat/apa…...
前端---JavaScript篇
1. 介绍 JavaScript 是 前端开发人员必须学习的 3 门语言中的一门: HTML 定义了网页的内容CSS 描述了网页的布局JavaScript 控制了网页的行为 接下来开始详解JavaScript。 2.引入方法 js有两种导入方式,一种是内部脚本:直接在html页面中…...
使用vue-admin-template时,需要注意的问题,包括一定要去除mock.js注释
在使用vue-admin-template等前端框架时,如果你没有打算用他们的mock数据,在生产环境下一定要注释mock引用的代码,虽然它没有被调用,但是如果你不注释,就会被打包进去。 找到main.js,看如下代码:…...
力扣hot100 最大子数组和 动态规划 分治 无后效性 子问题划分
👨🏫 题目地址 无后效性 为了保证计算子问题能够按照顺序、不重复地进行,动态规划要求已经求解的子问题不受后续阶段的影响。这个条件也被叫做「无后效性」。换言之,动态规划对状态空间的遍历构成一张有向无环图,遍…...
C语言--每日选择题--Day28
第一题 1. 设a和b均为double型变量,且a5.5、b2.5,则表达式(int)ab/b的值是( ) A:6.500000 B:6 C:5.500000 D:6.000000 答案及解析 D 本题考查的是不同数据类型之间的变量进行运算时…...
Linux 安装 Minio 配置 HTTPS
安装 创建目录 [roott2 local]# mkdir minio [roott2 local]# cd minio [roott2 minio]# mkdir data下载 [roott2 minio]# wget https://dl.min.io/server/minio/release/linux-amd64/minio [roott2 minio]# chmod x minio # 赋权设置账号密码 minio 默认账号密码为 minio…...
xcode opencv
1、导入报错 Undefined symbols: linker command failed with exit code 1 (use -v to see invocation) 直接添加如下图内容即可...
Spark---资源、任务调度
一、Spark资源调度源码 1、Spark资源调度源码过程 Spark资源调度源码是在Driver启动之后注册Application完成后开始的。Spark资源调度主要就是Spark集群如何给当前提交的Spark application在Worker资源节点上划分资源。Spark资源调度源码在Master.scala类中的schedule()中进行…...
单片机开发常见问题集合
文章目录 发送串口数据偶尔丢失字节 发送串口数据偶尔丢失字节 场景: 在STM32单片机中进行串口数据发送,在Linux/Windows上进行串口数据接收,会偶发出现接收到的数据有某些字节丢失。 分析: 在STM32中可以使用printf用于发送串口…...
Matlab 点云曲率计算(之二)
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 之前已经讨论过许多关于计算曲率的问题,这里使用一个通过拟合三次曲面方程的方式来计算曲率,计算过程如下图所示: 二、实现代码 %********...
C++11的原子变量
C11提供了一个原子类型std::atomic<T>,可以使用任意类型作为模板参数,C11内置了整型的原子变量,可以更方便的使用原子变量,使用原子变量就不需要使用互斥量来保护该变量了,用起来更简洁。例如,要做一…...
北京交通大学 计算机网络体系与协议(研) 考试试卷
计算机网络体系与协议2023年期末考试 时长:120分钟 学院: 学号: 姓名: 一、简答题(每题5分) 1.简述公开密钥密码体制的工作原理…...
python之pyqt专栏7-信号与槽3
在上一篇文章中python之pyqt专栏6-信号与槽2-CSDN博客中,我们可以了解到对象可以使用内置信号,这些信号来自于类定义或者继承过来的。我们可以对这些信号可以通过connect连接槽函数。 需求 现在有一个需求,有两个UI界面“untitled.ui”和“u…...
高噪点灰度图目标粗定位CoraseLocation
高噪点的灰度图目标粗定位 /* ** name: CoraseLocation ** brief: 粗定位 ** param:[in] srcGray 灰度图() ** param:[in] box 目标尺寸(像素) ** param:[ou] roi 目标定位结果 ** return: true成功,false…...
Android:Google三方库之Firebase集成详细步骤(二)
Analytics分析 1、将 Firebase 添加到您的 Android 项目(如果尚未添加),并确保在 Firebase 项目中启用了 Google Analytics(分析): 如果您要创建新的 Firebase 项目,请在项目创建过程中启用 G…...
java使用freemarker模板生成html,再生成pdf
1.freemarker模板生成html 添加Maven依赖 在pom.xml文件中添加以下依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId> </dependency>创建Freemarker…...
图解系列--Web服务器,Http首部
1.用单台虚拟主机实现多个域名 HTTP/1.1 规范允许一台 HTTP 服务器搭建多个 Web 站点。。比如,提供 Web 托管服务(Web Hosting Service)的供应商,可以用一台服务器为多位客户服务,也可以以每位客户持有的域名运行各自不…...
直线(蓝桥杯)
直线 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条。 给定平面上 2 3 个…...
Android:从源码看FragmentManager如何工作
一个Activity中,在某一个容器中,更换不同的Fragment,从而显示不同的界面,这个场景相信大家已经非常熟悉了,也知道Activity是通过FragmentManager来管理嵌入的Fragments的,所以今天就来看看FragmentManager是…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
xmind转换为markdown
文章目录 解锁思维导图新姿势:将XMind转为结构化Markdown 一、认识Xmind结构二、核心转换流程详解1.解压XMind文件(ZIP处理)2.解析JSON数据结构3:递归转换树形结构4:Markdown层级生成逻辑 三、完整代码 解锁思维导图新…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
相关类相关的可视化图像总结
目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系,可直观判断线性相关、非线性相关或无相关关系,点的分布密…...
DAY 45 超大力王爱学Python
来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...

