【Linux】sed编辑器
一、基本介绍
sed编辑器也叫流编辑器(stream editor),它是根据事先设计好得一组规则编辑数据流。
交互式文本编辑器(如Vim)中,可以用键盘命令交互式地插入、删除或替换文本数据。
sed编辑器是根据命令处理数据流中的数据,这些命令来自于命令行输入,或者来自于保存在命令文本文件中。它可以执行以下操作:
- 从输入中读取一行数据;
- 根据所提供的编辑器命令匹配数据;
- 按照命令修改数据流中的数据;
- 将新的数据输出到STDOUT
sed编辑器匹配并针对一行数据执行所有命令后,就会读取下一行数据并重复这个过程,在它处理完数据流中的所有行后,就结束运行。
由于命令是按顺序逐行执行的,因此sed编辑器只需对数据流处理一遍(one pass through)即可完成编辑操作。这使得sed编辑器比交互式编辑器快得多,还可以快速完成对数据的自动修改。
格式:
sed options script file
script:制定了应用于流数据中的单个命令。如果需要多个命令,可以使用 -e 选项在命令行中指定;或者使用 -f 选项在单独的文件中指定。
| -e commands | 在处理输入时,加入额外的sed命令 |
| -f file | 在处理输入时,将file中指定的命令添加到已有的命令中 |
| -n | 不产生命令输出,使用p(print)命令完成输出 |
二、处理文本
1、在命令行中使用单个sed编辑器命令
默认情况下,sed编辑器会将指定的命令应用于STDIN输入流中,所以可以直接将数据通过管道符传入sed编辑器进行处理。
替换命令:s;使用它可以将斜线间指定的第二个字符串替换掉第一个字符串。
echo "这是1个测试" | sed 's/1个/2个/'

批量替换文件中某个字符:
sed 's/成都/苏州/' test.txt

而且,sed编辑器并不会修改文本文件的数据,它只是将修改后的数据发送到STDOUT。
查看文本文件内容,依然未变。

2、在命令行中使用多个sed编辑器命令
如果想执行多个命令,可以使用 -e 选项。
多个命令都会应用于文件的每一行数据,命令之间必须要用分号(;)分隔开,并且命令末尾和分号之间不能出现空格。
sed -e 's/贵州/成都/;s/北京/广州/' test.txt

也可以用bash shell中的次提示符来分隔命令。
必须要在闭合的单引号所在行结束命令。因为bash shell一旦发现了闭合单引号,就会执行命令。

3、从文件中读取sed编辑器命令
可以使用 -f 选项来读取文件中的sed编辑器命令。

相关文章:
【Linux】sed编辑器
一、基本介绍 sed编辑器也叫流编辑器(stream editor),它是根据事先设计好得一组规则编辑数据流。 交互式文本编辑器(如Vim)中,可以用键盘命令交互式地插入、删除或替换文本数据。 sed编辑器是根据命令处理…...
(leetcode算法题)137. 只出现一次的数字 II
处理这种数据集中只有一个数出现的频次为1,其他数出现的频次均为k的题目 往往都是使用位运算的进行求解 假设 target在数据集中只出现了1次,其他数据n1, ... nj都出现了 k 次, 考虑数据集中所有数据的第 i 位的取值,那么将会有…...
在大数据环境下高效运用NoSQL与关系型数据库的结合策略
在大数据环境下,高效运用NoSQL与关系型数据库结合策略涉及到理解两者各自的优劣势,以及如何有效地整合它们。以下是一些代码示例和实际案例,以帮助你了解这种结合策略。 背景介绍 NoSQL数据库通常用于处理大量非结构化或半结构化的数据&…...
C语言——分支与循环语句
目录 一.分支语句 1.if语句 2.悬空else问题 3.switch语句 default子句 二.循环语句 1.while循环 whle循环流程图: break与continue 2.for循环 2.2for与while循环 2.3关于for循环的一道笔试题 3.do while 循环 三.猜数字游戏实现 四.goto语句 补充 …...
下载b站高清视频
需要使用的edge上的一个扩展插件,所以选择使用edge浏览器。 1、在edge浏览器上下载 强力视频下载合并 扩展插件 2、在edge上打开b站,登录自己账号(登录后才能下载到高清!!)。打开一个视频,选择自…...
常见 JVM垃圾回收器、内存分配策略、JVM调优
垃圾收集( Garbage Collection ,下文简称 GC),垃圾收集的历史远远比 Java久远。经过半个世纪的发展,今天的内存动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么…...
【HarmonyOS应用开发——ArkTS语言】欢迎界面(启动加载页)的实现【合集】
目录 😋环境配置:华为HarmonyOS开发者 📺演示效果: 📖实验步骤及方法: 一、在media文件夹中添加想要使用的图片素材 二、在entry/src/main/ets/page目录下创建Welcome.ets文件 1. 整体结构与组件声…...
【MySQL】:Linux 环境下 MySQL 使用全攻略
📃个人主页:island1314 🔥个人专栏:MySQL学习 ⛺️ 欢迎关注:👍点赞 👂🏽留言 😍收藏 💞 💞 💞 1. 背景 🚀 世界上主…...
Linux驱动开发 gpio_get_value读取输出io的电平返回值一直为0的问题
当时gpio子系统进行读取时返回必定是0 因此,首先必须使用platform驱动来管理gpio和pinctrl子系统,然后如果按照正点原子所教的设备树引脚设置为0x10B0则会导致读取到的电平值为0。 解决方法: 将设备树中的引脚设置为 pinctrl_gpioled: gpio…...
【数据结构】栈与队列(FIFO)
在阅读该篇文章之前,可以先了解一下堆栈寄存器和栈帧的运作原理:<【操作系统】堆栈寄存器sp详解以及栈帧>。 栈(FILO) 特性: 栈区的存储遵循着先进后出的原则。 例子: 枪的弹夹,最先装进去的子弹最后射出来,最后装入的子弹…...
vue.js -ref和$refs获取dom和组件
在Vue.js中,ref和$refs是两个常用的属性,用于访问DOM元素和组件实例。下面分别详细解析这两个属性,并提供代码实例。 ref属性 ref属性用于给DOM元素或组件指定一个唯一的引用标识,在Vue实例中可以通过这个标识来访问对应的DOM元素…...
unity学习5:创建一个自己的3D项目
目录 1 在unity里创建1个3D项目 1.1 关于选择universal 3d,built-in render pipeline的区别 1.2 创建1个universal 3d项目 2 打开3D项目 2.1 准备操作面板:操作界面 layout,可以随意更换 2.2 先收集资源:打开 window的 AssetStore 下载…...
IEEE PDF eXpress遇到Font TimesNewRomanPSMT is not embedded的解决方案
IEEE PDF eXpress遇到Font TimesNewRomanPSMT is not embedded的解决方案 问题描述 在IEEE PDF eXpress上上传论文后,出现Font XXX is not embedded的问题。 该问题是指你所插入的图片等,没有将对应的字体嵌入进去。 解决方案 以下以Origin Lab图片…...
计算机网络 (21)网络层的几个重要概念
前言 计算机网络中的网络层是OSI(开放系统互连)模型中的第三层,也是TCP/IP模型中的第二层,它位于数据链路层和传输层之间,负责数据包从源主机到目的主机的路径选择和数据转发。 一、网络层的主要功能 路由选择…...
企业网络性能监控
什么是网络性能监控 网络性能监控(NPM)是指对计算机网络的性能进行持续测量、分析和管理的过程,通过监控流量、延迟、数据包丢失、带宽利用率和正常运行时间等关键指标,确保网络高效、安全地运行,并将停机时间降至最低…...
halcon三维点云数据处理(五)创建代表工具和机器人底座的3D模型
目录 一、gen_robot_tool_and_base_object_model_3d 函数调用二、gen_arrow_object_model_3d 函数调用 首先说明一下这部分代码在find_box_3d这个例程中,非常好用的一个坐标系生成函数。 一、gen_robot_tool_and_base_object_model_3d 函数调用 RobotToolSize : 0.…...
容器技术思想 Docker K8S
容器技术介绍 以Docker为代表的容器技术解决了程序部署运行方面的问题。在容器技术出现前,程序直接部署在物理服务器上,依赖管理复杂,包括各类运行依赖,且易变,多程序混合部署时还可能产生依赖冲突,给程序…...
25年1月更新。Windows 上搭建 Python 开发环境:PyCharm 安装全攻略(文中有安装包不用官网下载)
python环境没有安装的可以点击这里先安装好python环境,python环境安装教程 安装 PyCharm IDE 获取 PyCharm PyCharm 提供两种主要版本——社区版(免费)和专业版(付费)。对于初学者和个人开发者而言,社区…...
Oracle job(定时任务)
1、job的作用 可以定时执行任务(分/次、时/次、天/次等) 2、创建job --创建job --注意点: --①job_no 为系统自动获取; --②存储过程名需要加‘;’ --③定时器开始执行时间可以填‘sysdate,表示立即执行 --④执行频…...
[python3]Excel解析库-xlwt
xlwt 是一个用于创建 Excel .xls 文件(即旧版的 Excel 97-2003 格式)的 Python 库。它允许你用 Python 编写程序来生成 Excel 文件,而不需要实际运行 Microsoft Excel 应用程序。请注意,xlwt 只支持写入 .xls 文件,并不…...
STANet揭秘:基于时空注意力的遥感图像变化检测新范式与LEVIR-CD数据集实践
1. 遥感图像变化检测的挑战与STANet的诞生 遥感图像变化检测是地理信息系统和计算机视觉交叉领域的重要课题。想象一下,你手上有两张同一区域不同时间拍摄的卫星图像,如何快速准确地找出哪些地方发生了变化?这听起来简单,实际操作…...
3步搞定微信聊天记录完整备份:WeChatExporter终极教程
3步搞定微信聊天记录完整备份:WeChatExporter终极教程 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾经担心手机丢失后那些珍贵的聊天记录会永远消失…...
避开Power BI数据导入的四大坑:从SQL Server连接到Excel表格的实战避坑指南
避开Power BI数据导入的四大坑:从SQL Server连接到Excel表格的实战避坑指南 当你第一次将SQL Server的销售数据与Excel的市场调研表格合并到Power BI时,那个红色感叹号就像一盆冷水浇下来——"查询超时"。这不过是数据工程师日常工作中的第一个…...
【Java阿里云短信服务SDK实战】——企业级通知短信的配置、封装与业务集成
1. 阿里云短信服务基础配置 第一次接触阿里云短信服务时,我被它复杂的控制台界面弄得有点懵。不过实际操作下来发现,企业级短信通知的配置流程其实就像搭积木,只要按步骤来就能搞定。这里分享下我在工单系统中配置短信通知的真实经历。 首先要…...
Langchain实战:如何用ChatGLM-4搭建你的第一个AI对话机器人(附完整代码)
Langchain实战:如何用ChatGLM-4搭建你的第一个AI对话机器人(附完整代码) 最近两年,大模型技术以惊人的速度渗透到各个领域。从智能客服到内容创作,从代码生成到数据分析,AI对话机器人正在重塑人机交互的方式…...
大模型SLA指标体系构建,从推理吞吐QPS、上下文长度衰减率到幻觉率基线校准的7维监控矩阵
第一章:大模型工程化服务等级协议SLA设计 2026奇点智能技术大会(https://ml-summit.org) 大模型工程化落地的核心挑战之一,在于将非确定性推理能力封装为可度量、可保障、可运维的生产级服务。SLA设计不再是传统API响应延迟与可用性的简单延伸ÿ…...
云原生数据管道设计与实现
云原生数据管道设计与实现 1. 云原生数据管道的概念与价值 云原生数据管道是构建在云基础设施上的数据流处理系统,用于从各种数据源收集、处理、转换和存储数据。它利用云原生技术的优势,如弹性伸缩、容器化和服务编排,实现高效、可靠、可扩展…...
WebRTC GCC源码实战:手把手教你调试GoogCcNetworkController的拥塞控制流程
WebRTC GCC源码实战:手把手教你调试GoogCcNetworkController的拥塞控制流程 在实时视频会议应用的开发过程中,带宽估计不稳定是工程师们经常遇到的棘手问题。当用户反馈画面卡顿、画质波动时,我们需要深入WebRTC的拥塞控制核心——Google Con…...
【限时解密】SITS2026未发布议程泄露:下一代长上下文架构“Hierarchical Chunked Attention”将重构Transformer范式?
第一章:SITS2026分享:大模型长上下文处理 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026大会上,多家前沿AI实验室联合发布了针对长上下文建模的新型架构范式,突破传统Transformer在序列长度扩展中的内存与计算瓶颈。…...
Linux内核与驱动:10.平台总线platform
在 Linux 驱动开发中,platform 是最常见、最基础的一类驱动模型。 尤其是在 ARM、嵌入式 Linux、设备树开发里,很多 GPIO、LED、按键、UART、I2C 控制器、SPI 控制器等驱动,最终都会和 platform 打交道。1.什么是platform?platfor…...
