Linux-----sed案例练习
1.数据准备
准备数据如下:
[root@openEuler ~]# cat openlab.txt
My name is jock.
I teach linux.
I like play computer game.
My qq is 24523452
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
2.题目
2.1、输出文件第2,3行的内容:
[root@openEuler ~]# sed -n '2,3p' openlab.txt
I teach linux.
I like play computer game.
2.2、过滤出含有linux的字符串行:
[root@openEuler ~]# sed -n '/linux/p' openlab.txt
I teach linux.
2.3、删除含有game的行:
[root@openEuler ~]# sed '/game/d' openlab.txt
My name is jock.
I teach linux.
My qq is 24523452
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
2.4、删除第5行到结尾:
[root@openEuler ~]# sed '5,$d' openlab.txt
My name is jock.
I teach linux.
I like play computer game.
My qq is 24523452
2.5、将文件中的My全部替换为His:
[root@openEuler ~]# sed 's/My/His/g' openlab.txt
His name is jock.
I teach linux.
I like play computer game.
His qq is 24523452
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
2.6、替换所有My为His,同时换掉QQ号为88888888:
[root@openEuler ~]# sed -e 's/My/His/g' -e 's/24523452/88888888/g' openlab.txt
His name is jock.
I teach linux.
I like play computer game.
His qq is 88888888
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
His website is http://www.xianoupeng.com
2.7、在文件第二行追加内容( a 字符功能),写入到文件(-i):
[root@openEuler ~]# sed -i '2a I like liunx' openlab.txt
[root@openEuler ~]# cat openlab.txt
My name is jock.
I teach linux.
I like liunx
I like play computer game.
My qq is 24523452
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
2.8、添加多行信息,用换行符“\n”:
[root@openEuler ~]# sed -i '3a I like liunx very much!\nand you?' openlab.txt
[root@openEuler ~]# cat openlab.txt
My name is jock.
I teach linux.
I like liunx
I like liunx very much!
and you?
I like play computer game.
My qq is 24523452
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
2.9、在每一行下面插入新内容:
[root@openEuler ~]# sed 'a ----------------------------------------' openlab.txt
My name is jock.
----------------------------------------
I teach linux.
----------------------------------------
I like liunx
----------------------------------------
I like liunx very much!
----------------------------------------
and you?
----------------------------------------
I like play computer game.
----------------------------------------
My qq is 24523452
----------------------------------------
My website is http://www.xianoupeng.com
----------------------------------------
My website is http://www.xianoupeng.com
----------------------------------------
My website is http://www.xianoupeng.com
----------------------------------------
My website is http://www.xianoupeng.com
----------------------------------------
My website is http://www.xianoupeng.com
----------------------------------------
My website is http://www.xianoupeng.com
----------------------------------------
2.10、在第二行上面插入内容:
[root@openEuler ~]# sed -i '2i I am a boy.' openlab.txt
[root@openEuler ~]# cat openlab.txt
My name is jock.
I am a boy.
I teach linux.
I like liunx
I like liunx very much!
and you?
I like play computer game.
My qq is 24523452
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
My website is http://www.xianoupeng.com
注意:sed对文件进行操作处理时,改变的只是内存中的文件数据,源文件的数据不会发生改变,如果想对文件内的内容进行处理则需要加上 -i 这个选项。
3.补充-----sed的工作流程
如图所示:

如上面的图片一样,sed工作时会一行一行的读取文件内容,每次读取一行放入sed模式空间,然后与匹配模式相匹配,不管匹配成功还是失败,都会输出到屏幕上。失败则是直接将原内容输出,成功则是输出编辑处理过的数据。默认的输出可以取消(使用-n 选项) 。
相关文章:
Linux-----sed案例练习
1.数据准备 准备数据如下: [rootopenEuler ~]# cat openlab.txt My name is jock. I teach linux. I like play computer game. My qq is 24523452 My website is http://www.xianoupeng.com My website is http://www.xianoupeng.com My website is http://www.…...
【华为OD机试-C卷D卷-200分】运输时间(C++/Java/Python)
【华为OD机试】-(A卷+B卷+C卷+D卷)-2024真题合集目录 【华为OD机试】-(C卷+D卷)-2024最新真题目录 题目描述 M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。速度快的车追上前车后,只能以前车的速度继续行驶,求最后一…...
flink程序本地运行报: A JNI error has occurred和java.lang.NoClassDefFoundError
1.问题描述 在idea中运行flink job程序出现如下错误: Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/api/common/io/FileInputFormat …...
yolox-何为EMA?
何为EMA? 定义: 滑动平均/指数加权平均:用来估计变量的局部均值,使得变量的更新与一段时间内的历史取值有关,滑动平均可以看作是变量的过去一段时间取值的均值。 优点: 相比于直接赋值,滑动平均…...
Java:String、StringBuffer和StringBuilder的区别
参考: https://blog.csdn.net/kingzone_2008/article/details/9220691 https://blog.csdn.net/itchuxuezhe_yang/article/details/89966303 String 常量字符串,每次修改都是会新创建一个字符串,当要频繁修改字符串的时候不建议使用 String S…...
虚拟化技术 分布式资源调度
一、实验内容 实现分布式资源调度 二、实验主要仪器设备及材料 安装有64位Windows操作系统的台式电脑或笔记本电脑,建议4C8G或以上配置已安装VMware Workstation Pro已安装Windows Server 2008 R2 x64已安装vCenter Server 三、实验步骤 将主机esxi1和esxi2加入…...
【Element-plus】vue组合式中使用el-upload通过oss接口上传图片流程(可直接复制使用)
Html <el-upload:actionossUrl:on-success"handleImgSuccess":headers"{Authorization:token}"><el-icon><Plus /></el-icon>点击上传图片</el-upload> JS const ossUrl ref("") ossUrl.value 【你的ossUrl】…...
C++ 数据结构算法 学习笔记(33) -查找算法及企业级应用
C 数据结构算法 学习笔记(33) -查找算法及企业级应用 数组和索引 日常生活中,我们经常会在电话号码簿中查阅“某人”的电话号码,按姓查询或者按字母排 序查询;在字典中查阅“某个词”的读音和含义等等。在这里,“电话号码簿”和…...
【Linux】在Ubuntu 16.04上安装Gerrit + PostgreSQL + Apache服务
Gerrit是一个基于Git版本控制系统的运行于Web浏览器上的Code Review工具,本文叙述如何在Ubuntu 16.04上安装Gerrit服务。(当然安装Gerrit的方法有很多,本文只是其中之一) 文章目录 前提安装PostgreSQL数据库并创建用户下载、配置和…...
数据倾斜那些事儿
目录 一、什么是数据倾斜? 二、预判与预防 三、躲闪策略 四、硬刚策略 一、什么是数据倾斜? 之前在大厂当了好几年的sqlboy,数据倾斜这个“小烦人精”确实经常在工作中出没。用简单的话来说,数据倾斜就像是“贫富差距”在数据…...
python考试成绩管理与分析:从列表到方差
新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、考试成绩的输入与列表管理 二、成绩的总分与平均成绩计算 三、成绩方差的计算 四、成…...
Excel某列中有不连续的数据,怎么提取数据到新的列?
这里演示使用高级筛选的例子: 1.设置筛选条件 在D2单元格输入公式:COUNTA(A4)>0 这里有两个注意事项: *. 公式是设置在D2单元格,D1单元格保持为空, **. 为什么公式中选A4单元格,A列的第一个数据在A3…...
翻译《The Old New Thing》- What does it mean when a display change is temporary?
What does it mean when a display change is temporary? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20080104-00/?p23923 Raymond Chen 2008年01月04日 什么叫临时性的显示设置变更? 当您调用ChangeDisplaySettings函数时…...
【C语言】char,short char,long char分别是多少字节,多少位,多少bit
一,char,short char,long char分别是多少字节 在 C 语言中,char、short、int、long 这些数据类型的大小是平台相关的,它们的大小取决于编译器和操作系统的实现。然而,它们的大小通常遵循以下规则ÿ…...
新V 系首批订单交付!苏州金龙助新疆游骏文旅集团打造旅运新标杆
热播剧集《我的阿勒泰》收官不久,6月新疆旅游旺季将至。 2024年5月下旬,苏州金龙海格客车新V系首批30辆正式交付新疆客户! 作为苏州金龙海格客车新V系首批用户,新疆游骏文旅集团董事长王红强表示:“海格新V系从外观、…...
【Django】从零开始学Django【2】
五. CBV视图 Django植入了视图类这一功能,该功能封装了视图开发常用的代码,无须编写大量代码即可快速完成数据视图的开发,这种以类的形式实现响应与请求处理称为CBV(Class Base Views)。 1. 数据显示视图 数据显示视图是将后台的数据展示…...
【leetcode--383赎金信(使用Counter一行代码结束战斗)】
magazine中的字母组成一封赎金信,一个字母只能被用一次,看是否能完成制定赎金信 灵神思路:使用python内置Counter def canConstruct(self, ransomNote: str, magazine: str) -> bool:return Counter(ransomNote) < Counter(magazine) …...
pdf打开方式怎么设置默认?分享这几种设置方法
pdf打开方式怎么设置默认?你是否曾遇到过打开PDF文档时,默认的打开程序并非你所需要的,从而影响了工作效率?别担心,本文将为你详细解读如何设置PDF的默认打开方式,让你的工作更加高效便捷。 首先࿰…...
杂谈|RestFul和http的区别
前言 今天和我一组的小伙伴,在对接一个接口时,客户将DELETED请求设置了body参数,导致一个功能反复搞了半天,今天就来说下这两者的区别 1.HTTP概述 HTTP(HyperText Transfer Protocol)是一种用于从WWW&…...
Nginx的Sub模块
Nginx 是一款高性能的 Web 服务器和反向代理服务器,其灵活的模块化设计使其成为许多开发者和运维人员的首选。其中,Sub 模块作为 Nginx 的一部分,提供了强大的字符串替换和正则匹配功能,本文将深入探讨 Sub 模块的用途、示例以及使用中需要注意的事项。 1. Sub 模块的用途…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
