Linux-----sed案例练习

news2024/10/5 5:01:24

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  选项) 。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

成都爱尔眼科巫雷院长教你在家“自查”白内障

检查以下自己(或者父母、亲属)是否有发生以下情况: 视物模糊视物模糊是白内障的主要症状。2、眼前暗影白内障早期,有的患者眼前会出现阴影,这是因为晶状体发生浑浊。晶状体混浊在眼前固定位置,患者会“看到…

PID传感器在光电显示行业VOC气体检测的应用

随着光电显示技术的飞速发展,液晶显示器等显示器件产品已经成为我们日常生活和工作中不可或缺的一部分。然而,在生产过程中,液晶显示器会释放大量的挥发性有机物(VOC)气体,对生产环境及工作人员的健康构成威…

Stable Diffusion 使用安装

Stable Diffusion是一个文本到图像的潜在扩散模型,由CompVis、Stability AI和LAION的研究人员和工程师创建。它使用来自LAION-5B数据库子集的512x512图像进行训练。使用这个模型,可以生成包括人脸在内的任何图像,因为有开源的预训练模型&…

【全开源】CMS内容管理系统源码(ThinkPHP+FastAdmin)

基于ThinkPHPFastAdmin的CMS内容管理系统,自定义内容模型、自定义单页、自定义表单、专题、统计报表、会员发布等 提供全部前后台无加密源代码和数据库私有化部署,UniAPP版本提供全部无加密UniAPP源码。 ​构建高效内容管理的基石 一、引言&#xff1a…

Unity 生成模版代码

1、创建模版代码文本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class ClassNameScritpItem : MonoBehaviour {public GameObject go;// Start is called before the first frame updatevoid Start(){go new GameObject();}// …

充电宝哪家好用推荐?买什么充电宝性价比高?2024年充电宝排行榜

说实话,我其实是个手机重度使用者,买过的充电宝也有无数款了,每次手机没电的时候插座都离得不是特别近,不是要下床充电就是要固定在一个位置充电感觉怪麻烦的,但是有了充电宝后可以在床上玩手机都不用担心手机没电&…

李飞飞亲自撰文:大模型不存在主观感觉能力,多少亿参数都不行

近日,李飞飞连同斯坦福大学以人为本人工智能研究所 HAI 联合主任 John Etchemendy 教授联合撰写了一篇文章,文章对 AI 到底有没有感觉能力(sentient)进行了深入探讨。 「空间智能是人工智能拼图中的关键一环。」知名「AI 教母」李…

HAL工程应该这样搭建~

目录 一、为何要自己手动搭建一个软件工程? 二、在Keil5STM32F429**平台下的软件工程搭建 三、打开Keil MDK5软件创建一个新工程 四、在各个文件夹下添加所需文件 五、在MDK工程下添加文件 六、在MDK下添加路路径 一、为何要自己手动搭建一个软件工程&#xff…

010、哈希_命令

在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value{{field1,value1},…{fieldN,valueN}} 如图字符串和哈希类型对比 (1)设置值 hset key field value下面为user:1添加…

免费,Python蓝桥杯等级考试真题--第13级(含答案解析和代码)

Python蓝桥杯等级考试真题–第13级 一、 选择题 答案:C 解析:正向下标由0开始,下标3代表第四个元素,故答案为C。 答案:A 解析:range(0,4)的取前不取后,元组的符号是小括…

【运维自动化-配置平台】如何跨业务转移主机

在如何创建业务拓扑中,了解到业务是蓝鲸体系重要的资源管理纬度,主机在业务之前需要流转怎么做呢?比如要把A业务一台主机划给B业务使用权限中心 跨业务转移主机一般场景是由源主机所在业务的负责人发起,需要申请目标业务的相关权…

蓝牙Mesh模块多跳大数据量高带宽传输数据方法

随着物联网技术的飞速发展,越来越多的设备需要实现互联互通。蓝牙Mesh网络作为一种低功耗、高覆盖、易于部署的无线通信技术,已经成为物联网领域中的关键技术之一。在蓝牙Mesh网络中,节点之间可以通过多个跳数进行通信,从而实现大…

You don‘t have enough free space或者no space left on device异常

1.磁盘空间不足 Linux安装软件显示 You dont have enough free space 或者docker拉镜像时,出现磁盘空间不足的情况 no space left on device 如果你是ubuntu系统。查看磁盘空间 df -h 多半是这个目录满了/dev/mapper/ubuntu--vg-ubuntu--lv 大多情况我们只希望扩…

821. 字符的最短距离 - 力扣

1. 题目 给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。 返回一个整数数组 answer ,其中 answer.length s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。 两个下标 i 和 j 之间的 距离 为 abs(i - j) &#xff0c…

Stable Diffusion【二次元模型】:质量高细节丰富的动漫风格大模型anima_pencil-XL

今天给大家介绍的是一个动漫风格的大模型anima_pencil-XL,这个模型出自一位日本的创作者。最早的版本是V1.0.0是今年1月份才发布的,短短的2个月已经更新了5个版本,最新的版本是V2.6.0,可见作者更新版本的频率有多高。 提到anima_…

操作系统4_存储器管理

操作系统4_存储器管理 文章目录 操作系统4_存储器管理1. 存储器的管理功能1.1 地址映射/地址重定位1.2 主存分配与回收1.3 存储保护1.4 主存扩充/虚拟内存2. 存储器的层次结构3. 程序的接入与链接3.1 程序的链接3.2 程序的装入4. 分区存储管理4.1 单一连续分配4.2 固定分区分配…

vue3 部署后修改配置文件

前端项目部署之后,运维可以自行修改配置文件里的接口IP,达到无需再次打包就可以使用的效果 vue2如何修改请看vue 部署后修改配置文件(接口IP)_vue部署后修改配置文件-CSDN博客 使用前提: vite搭建的vue3项目 使用setu…

如何提高运放的输出电流驱动能力

复合放大器的稳定性考虑因素 辅助运算放大器通常放置在主运算放大器的反馈环路内部,如图 1(a) 所示。次级器件引入的相位滞后往往会侵蚀复合放大器的 相位裕度? m ,因此我们可能必须采取适当的频率补偿措施。 复合放大器的开环增益 ac 和噪声增益 1/β…

AI绘画整合包最新Stable Diffusion安装包+教程+模型+插件+动作来了(纯教学)

首先了解一下AI绘画工具,介绍一下什么是Stable Diffusion,模型的主要功能和作用 Stable Diffusion(简称SD),是一种先进的人工智能技术。这项技术的核心能力在于,它能够根据用户提供的文字描述,…

Apple Developer 个人开发者账号申请流程

Apple Developer 个人开发者账号申请流程 开发者账号类型功能介绍 公司、政府的需要邓白氏码比较复杂 分五个步骤进行 1、注册苹果账号apple id 2、开启双重认证 3、下载Apple Developer应用 4、到Apple Developer应用填写申请资料 5、绑定支付宝或者微信支付苹果年费688 一…