Linux sed
文章目录
- 1. 基本功能
- 2.sed替换s
- sed配合grep和管道操作符的例子
- 3.sed中的删除和添加
- 3.1 d删除
- 3.2 a i添加
- 添加多行
- 4.sed行替换
- 替换包含某字符的行
- 5.单字符替换 y
- 6. p打印命令
- 打印含有目标字符的行
- sed中包含多个指令,使用{}
- 7.sed w 写入文件
- 8.sed r 读取文件
- 9.sed q 退出脚本——及时终止命令执行
- 10.综合实例
- 批量指令sed指令
1. 基本功能
- 对文本中的某一行做增删改查
sed [optionsl'addrcommand[flags]' filename
//addr是指令操作的行,不写默认是全部
//command是操作指令,添加、修改等
例如:sed -e '1s/test/trial/g' data.txt
1为地址,表示操作data.txt的第一行;
s为cmd,表示替换;**命令选项**
-e:直接在vim的命令行模式上进行sed动作编辑,此为默认选项,缺省也可以。但是文件本身不被修改,只是会将执行后的结果打印;
-f:将sed的动作写在一个文件内,用-f filename执行filename内的sed动作;
-i:直接修改文件内容;
-n:只打印模式匹配的行;
-r:支持扩展表达式:**sed常用内部命令**
a 在匹配后面添加
i 在匹配前面添加
p 打印
d 删除
S 替换
c 更改
y 转换**flags**
相关描述参考下图
2.sed替换s
[address]s/pattern/replacement/flagssed指令只有-i下才会直接修改文件flag标记中的n表示将第几个目标字符做替换,如果在某一行中只有1个目标字符,则当n>1时,替换不生效。
- 如下图所示,使用p这个flag的时候必须配合-n,这样会只打印匹配上的行。通常用于原文件行数过多,只想看操作的行的时候。
- 使用w flag,可以将匹配上的行输出到一个文件,如下图所示,输出到了data1.txt
- 使用反斜线对特殊字符做转义
sed配合grep和管道操作符的例子
3.sed中的删除和添加
3.1 d删除
sed 'd' data.txt
sed d删除
-所有
sed '3d' data.txt
- 3行
sed'1,3d' data.txt
-1到3行
-sed '2,4d' data.txt
-2到4行
3.2 a i添加
sed a和i添加
sed '3i This is an inserted line.' data.txt
//在第3行前面添加sed '3a This is an appended line. data.txt
//在第3行后面添加
添加多行
sed '1i This is one line of new text.\
This is another line of new text. data.txt
4.sed行替换
sed c行替换
sed '3c This is a changed line of text.' data.txt
//无视第三行的内容,直接进行行替换,源文件没有被替换,只是打印出来替换结果了。
替换包含某字符的行
sed '/number 3/c\
> This is a changed line of text.' data.txt
- 上面将一个命令拆多行写了,下面是一行完成的。都是将含有number 3字符的行进行整行替换
5.单字符替换 y
sed y转换脚本
单个字符一对一替换
sed 'y/123/789/" data.txt
- 将123替换为789,虽然123写在了一起,但是也是按照单个字符处理的,不是按照123三个字符来理解。
- 继续添加一个l,也是一样,不论在什么位置,都会进行单个字符替换
echo "This 1 is a test of 1 try." | sed 'y/123/456/'
This 4 is a test of 4 try
6. p打印命令
sed -n '/number 3/p' data.txt
用-n选项和p命令配合使用,我们可以禁止输出其他行,只打印包含匹配文本模式的行。 如果需要在
修改之前查看行,也可以使用打印命令,比如与替换或修改命令一起使用。可以创建一个脚本在修改行之前显示该行
打印含有目标字符的行
sed中包含多个指令,使用{}
sed -n '/3/{
>p
>s/line/test/p
> }' data.txt
This is line number 3.
This is test number 3.
查找包含数字3的行,然后执行两条命令。首先,脚本用p命令来打印出原始行;然后它用s命令替换文本,并用p标记打印出替换结果。输出同时显示了原来的行文本和新的行文本
7.sed w 写入文件
sed '1,2w test.txt' data.txt
//将data.txt中的1~2行写入test.txt
//上述指令没有-n,还是会打印data.txt的内容sed -n '/demo/w demo.txt' data.txt
//将包含demo的行打印到demo.txt,-n加上就不会打印无关行了。
8.sed r 读取文件
sed '3r data1.txt' data.txt
sed 命令会将 filename 文件中的内容插入到 address 指定行的后面
sed '$r data1.txt' data.txt 插入到文件末尾
9.sed q 退出脚本——及时终止命令执行
sed '2q' test.txt
- 使用q只打印前2行
sed '/number/{s/number/num/;q}' data.txt
//包含多个命令用{},多个命令之间使用;分隔
//带q则执行完一次替换后指令就终止,不带则会针对全部行做替换
10.综合实例
sed '1...' data.txt
//直接指定行号
sed '1,3...' data.txt
//指定行的范围
sed '1,$...' data.txt
//从某行开始到最后一行
sed '/zyr/s/bash/csh/' /etc/passwd
//使用字符匹配,找到包含zyr的行做替换
//使用正则匹配做替换
sed '{s/h[0-9]/\<&\>/1; s/h[0-9]/\<&\>/2}' test.txt
//此处的&在sed语法中表示匹配上的字符本身
//{}表示对一行内容做多个操作,多个操作之间使用;分割
- 为了简化指令,可以将操作对象往前提,这样只写一次就行
其实sed的指令在vim中都可以使用命令模式直接敲然后回车执行,但是不利用批量指令。
这时就可以创建一个sed的脚本来操作目标文本!!
批量指令sed指令
创建sed.sh,将指令写入;使用-f调用指令脚本
下图为sed.sh脚本中的内容,这样可以分行写,很清晰。
相关文章:

Linux sed
文章目录 1. 基本功能2.sed替换ssed配合grep和管道操作符的例子 3.sed中的删除和添加3.1 d删除3.2 a i添加添加多行 4.sed行替换替换包含某字符的行 5.单字符替换 y6. p打印命令打印含有目标字符的行sed中包含多个指令,使用{} 7.sed w 写入文件8.sed r 读取文件9.se…...

【MySQL】MySQL在Centos 7环境安装
目录 准备工作 第一步:卸载不要的环境 第二步:下载官方的mysql 第三步 上传到Linux中 第四步 安装 正式安装 启动 编辑 登录 准备工作 第一步:卸载不要的环境 使用root进行安装 如果是普通用户,使用 su - 命令&#…...

【CSS】一篇文章讲清楚screen、window和html元素的位置:top、left、width、height
一个Web网页从内到外的顺序是: 元素div,ul,table... → 页面body → 浏览器window → 屏幕screen 分类详情屏幕screen srceen.width - 屏幕的宽度 screen.height - 屏幕的高度(屏幕未缩放时,表示屏幕分辨率) screen.availLeft …...

铸造大型基础平板的结构应该怎样设计
设计大型基础平板的结构时,需要考虑以下几个方面: 地质条件:首先要了解工程所在地的地质条件,包括土质、地下水位、地震状况等。根据地质条件来选择合适的基础类型,如浅基、深基或地下连续墙等。 荷载分析:…...

医院预约系统微信小程序APP前后端
医院预约系统具体功能介绍:展示信息、可以注册和登录, 预约(包含各个科室的预约,可以预约每个各个医生),就诊引导包含预约的具体信息,包含就诊时间、就诊科室、就诊医生以及就诊人信息、和支付状…...

springboot数字化智慧城市管理系统源码
目录 系统开发环境 系统功能模块 系统特点 1、智慧城管移动端 2、案件受理 3、AI视频智识别分析 系统应用价值 1、提升案件办理效率 2、提升监管效能 3、提升行政执法水平 4、推进行政执法创新 智慧城管综合执法办案系统功能 现场移动执法 一般程序案件的网上办…...

【鸿蒙开发】第二十一章 Media媒体服务(一)
1 简介 Media Kit(媒体服务)提供了AVPlayer和AVRecorder用于播放、录制音视频。 在Media Kit的开发指导中,将介绍各种涉及音频、视频播放或录制功能场景的开发方式,指导开发者如何使用系统提供的音视频API实现对应功能。比如使用…...
【QT教程】QT6 Web应用实战
QT6 Web应用实战 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费…...

(我的创作纪念日)[MySQL]数据库原理7——喵喵期末不挂科
希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,大大会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…...

普乐蛙VR航天体验馆设备VR太空飞船VR元宇宙展厅
三天小长假就要来啦!五一假期也即将到来。老板们想捉住人流量这个财富密码吗?那快快行动起来!开启VR体验项目,假期赚翻天!小编亲测!!这款设备刺激好玩,想必会吸引各位家长小孩、学生…...
基于torch的图像识别训练策略与常用模块
数据预处理部分: 数据增强:torchvision中transforms模块自带功能,比较实用数据预处理:torchvision中transforms也帮我们实现好了,直接调用即可DataLoader模块直接读取batch数据 网络模块设置: 加载预训练…...

微信小程序制作圆形进度条
微信小程序制作圆形进度条 1. 建立文件夹 选择一个目录建立一个文件夹,比如 mycircle 吧,另外把对应 page 的相关文件都建立出来,包括 js,json,wxml 和 wxcc。 2. 开启元件属性 在 mycircle.json中开启 component 属…...

大模型(Large Models):探索人工智能领域的新边界
🌟文章目录 🌟大模型的定义与特点🌟模型架构🌟大模型的训练策略🌟大模型的优化方法🌟大模型的应用案例 随着人工智能技术的飞速发展,大模型(Large Models)成为了引领深度…...

缓存相关知识总结
一、缓存的作用和分类 缓存可以减少数据库的访问压力,提升整个网站的数据访问速度,改善数据库的写入性能。缓存可以分为两种: 缓存在应用服务器上的本地缓存:访问速度快,但受应用服务器内存限制 缓存在专门的分布式缓存…...

Mapmost Alpha:开启三维城市场景创作新纪元
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
【大模型完全入门手册】——引言
博主作为一名大模型开发算法工程师,很希望能够将所学到的以及实践中感悟到的内容梳理成为书籍。作为先导,以专栏的形式先整理内容,后续进行不断更新完善。希望能够构建起从理论到实践的全流程体系。 助力更多的人了解大模型,接触大模型,一起感受AI的魅力! 在当今人工智能…...
在 Vue 3 中使用 Axios 发送 POST 请求
在 Vue 3 中使用 Axios 发送 POST 请求需要首先安装 Axios,然后在 Vue 组件或 Vuex 中使用它。以下是一个简单的安装和使用案例: 安装 Axios 你可以使用 npm 或 yarn 来安装 Axios: npm install axios # 或者 yarn add axios 使用 Axios…...
【LeetCode刷题记录】189. 轮转数组
189 轮转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: …...

1.open3d处理点云数据的常见方法
1. 点云的读取、可视化、保存 在这里是读取的点云的pcd文件,代码如下: import open3d as o3dif __name__ __main__:#1.点云读取point o3d.io.read_point_cloud("E:\daima\huawei\img\change2.pcd")print(">",point)#2.点云可视…...
https和http有什么区别,为什么要用https
HTTPS(Hypertext Transfer Protocol Secure)和HTTP(Hypertext Transfer Protocol)之间的主要区别在于安全性。 安全性: HTTP是一种明文传输协议,数据在客户端和服务器之间以明文形式传输,容易…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...

给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...

如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...