当前位置: 首页 > news >正文

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中包含多个指令&#xff0c;使用{} 7.sed w 写入文件8.sed r 读取文件9.se…...

【MySQL】MySQL在Centos 7环境安装

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

【CSS】一篇文章讲清楚screen、window和html元素的位置:top、left、width、height

一个Web网页从内到外的顺序是&#xff1a; 元素div,ul,table... → 页面body → 浏览器window → 屏幕screen 分类详情屏幕screen srceen.width - 屏幕的宽度 screen.height - 屏幕的高度&#xff08;屏幕未缩放时&#xff0c;表示屏幕分辨率&#xff09; screen.availLeft …...

铸造大型基础平板的结构应该怎样设计

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

医院预约系统微信小程序APP前后端

医院预约系统具体功能介绍&#xff1a;展示信息、可以注册和登录&#xff0c; 预约&#xff08;包含各个科室的预约&#xff0c;可以预约每个各个医生&#xff09;&#xff0c;就诊引导包含预约的具体信息&#xff0c;包含就诊时间、就诊科室、就诊医生以及就诊人信息、和支付状…...

springboot数字化智慧城市管理系统源码

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

【鸿蒙开发】第二十一章 Media媒体服务(一)

1 简介 Media Kit&#xff08;媒体服务&#xff09;提供了AVPlayer和AVRecorder用于播放、录制音视频。 在Media Kit的开发指导中&#xff0c;将介绍各种涉及音频、视频播放或录制功能场景的开发方式&#xff0c;指导开发者如何使用系统提供的音视频API实现对应功能。比如使用…...

【QT教程】QT6 Web应用实战

QT6 Web应用实战 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费…...

(我的创作纪念日)[MySQL]数据库原理7——喵喵期末不挂科

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;大大会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…...

普乐蛙VR航天体验馆设备VR太空飞船VR元宇宙展厅

三天小长假就要来啦&#xff01;五一假期也即将到来。老板们想捉住人流量这个财富密码吗&#xff1f;那快快行动起来&#xff01;开启VR体验项目&#xff0c;假期赚翻天&#xff01;小编亲测&#xff01;&#xff01;这款设备刺激好玩&#xff0c;想必会吸引各位家长小孩、学生…...

基于torch的图像识别训练策略与常用模块

数据预处理部分&#xff1a; 数据增强&#xff1a;torchvision中transforms模块自带功能&#xff0c;比较实用数据预处理&#xff1a;torchvision中transforms也帮我们实现好了&#xff0c;直接调用即可DataLoader模块直接读取batch数据 网络模块设置&#xff1a; 加载预训练…...

微信小程序制作圆形进度条

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

大模型(Large Models):探索人工智能领域的新边界

&#x1f31f;文章目录 &#x1f31f;大模型的定义与特点&#x1f31f;模型架构&#x1f31f;大模型的训练策略&#x1f31f;大模型的优化方法&#x1f31f;大模型的应用案例 随着人工智能技术的飞速发展&#xff0c;大模型&#xff08;Large Models&#xff09;成为了引领深度…...

缓存相关知识总结

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

Mapmost Alpha:开启三维城市场景创作新纪元

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

【大模型完全入门手册】——引言

博主作为一名大模型开发算法工程师,很希望能够将所学到的以及实践中感悟到的内容梳理成为书籍。作为先导,以专栏的形式先整理内容,后续进行不断更新完善。希望能够构建起从理论到实践的全流程体系。 助力更多的人了解大模型,接触大模型,一起感受AI的魅力! 在当今人工智能…...

在 Vue 3 中使用 Axios 发送 POST 请求

在 Vue 3 中使用 Axios 发送 POST 请求需要首先安装 Axios&#xff0c;然后在 Vue 组件或 Vuex 中使用它。以下是一个简单的安装和使用案例&#xff1a; 安装 Axios 你可以使用 npm 或 yarn 来安装 Axios&#xff1a; npm install axios # 或者 yarn add axios 使用 Axios…...

【LeetCode刷题记录】189. 轮转数组

189 轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 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文件&#xff0c;代码如下&#xff1a; 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&#xff08;Hypertext Transfer Protocol Secure&#xff09;和HTTP&#xff08;Hypertext Transfer Protocol&#xff09;之间的主要区别在于安全性。 安全性&#xff1a; HTTP是一种明文传输协议&#xff0c;数据在客户端和服务器之间以明文形式传输&#xff0c;容易…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

基于Springboot+Vue的办公管理系统

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

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

LangFlow技术架构分析

&#x1f527; LangFlow 的可视化技术栈 前端节点编辑器 底层框架&#xff1a;基于 &#xff08;一个现代化的 React 节点绘图库&#xff09; 功能&#xff1a; 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

如何把工业通信协议转换成http websocket

1.现状 工业通信协议多数工作在边缘设备上&#xff0c;比如&#xff1a;PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发&#xff0c;当设备上用的是modbus从站时&#xff0c;采集设备数据需要开发modbus主站&#xff1b;当设备上用的是西门子PN协议时&#xf…...