Linux命令200例:sed对文本进行修改、替换和删除等操作的强大工具(常用)

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。
🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。
🏆本文已收录于专栏:Linux命令大全。
🏆本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入讲解。欢迎提前锁定关注。
🎉欢迎 👍点赞✍评论⭐收藏
文章目录
- 一、什么是 Linux Sed 命令?
- 二、如何使用 Linux Sed 命令?
- 三、高频使用示例
- 3.1 替换文本
- 3.2 按行号替换指定行
- 3.3 删除指定行
- 3.4 查找并删除指定文本所在的行
- 3.5 显示特定行之间的内容
- 3.6 插入新行
- 3.7 追加新行
- 3.8 根据正则表达式匹配行,并替换其内容
- 3.9 在指定行之前或之后添加文本
- 3.10 多个编辑命令的组合
- 3.11 使用正则表达式进行全局替换
- 3.12 删除文件内容中的空白行
- 3.13 打印指定行号的内容
- 3.14 根据行号范围删除多行
- 3.15 查找并替换指定行的内容
- 四、总结
一、什么是 Linux Sed 命令?
Linux Sed(stream editor)命令是一种流式文本编辑器,用于对文本进行修改、替换和删除等操作。它可以读取输入的文本流,按照指定规则处理后输出结果,通常与管道命令一起使用。Sed是一个非交互式的命令行工具,可以批量处理大型文件,并使用简单的脚本语言进行编辑。
二、如何使用 Linux Sed 命令?
Sed 命令的基本语法为:
sed OPTIONS 'script' input_file(s)
其中,OPTIONS 是可选的参数,用于设置 Sed 的不同功能选项;script 是 Sed 脚本,用于指定 Sed 的操作命令;input_file(s) 是要处理的输入文件。如果未指定输入文件,则从标准输入读取数据。
Sed 命令可以根据需求来编辑文本,常用的操作命令包括查找和替换、删除指定行、插入和追加文本等。
以下是 15 个实际的例子,展示了 Sed 命令在不同场景下的使用方法。
三、高频使用示例
3.1 替换文本
sed 's/old_text/new_text/g' file.txt
将文件 file.txt 中所有的 “old_text” 替换为 “new_text”。
3.2 按行号替换指定行
sed '3s/old_text/new_text/g' file.txt
将文件 file.txt 的第 3 行中的 “old_text” 替换为 “new_text”。
3.3 删除指定行
sed '6d' file.txt
删除文件 file.txt 的第 6 行。
3.4 查找并删除指定文本所在的行
sed '/pattern/d' file.txt
删除文件 file.txt 中包含 “pattern” 的所有行。
3.5 显示特定行之间的内容
sed -n '2,5p' file.txt
显示文件 file.txt 中第 2 至第 5 行的内容。
3.6 插入新行
sed '3i\new_line' file.txt
在文件 file.txt 的第 3 行前插入新行 “new_line”。
3.7 追加新行
sed '3a\new_line' file.txt
在文件 file.txt 的第 3 行后追加新行 “new_line”。
3.8 根据正则表达式匹配行,并替换其内容
sed '/pattern/s/old_text/new_text/g' file.txt
在文件 file.txt 中,匹配包含 “pattern” 的行,并将行内的 “old_text” 替换为 “new_text”。
3.9 在指定行之前或之后添加文本
sed '/pattern/i\new_line' file.txt
sed '/pattern/a\new_line' file.txt
在文件 file.txt 中,找到匹配 “pattern” 的行,分别在其前面或后面添加新行 “new_line”。
3.10 多个编辑命令的组合
sed -e '2,5d' -e 's/old_text/new_text/g' file.txt
删除文件 file.txt 中第 2 至第 5 行,并将其余行中的 “old_text” 替换为 “new_text”。
3.11 使用正则表达式进行全局替换
sed 's/old_text/new_text/g' file.txt
将文件 file.txt 中所有的 “old_text” 替换为 “new_text”。
3.12 删除文件内容中的空白行
sed '/^\s*$/d' file.txt
删除文件 file.txt 中的空白行。
3.13 打印指定行号的内容
sed -n '3p' file.txt
打印文件 file.txt 的第 3 行内容。
3.14 根据行号范围删除多行
sed '3,6d' file.txt
删除文件 file.txt 中第 3 至第 6 行。
3.15 查找并替换指定行的内容
sed '5s/old_text/new_text/g' file.txt
将文件 file.txt 的第 5 行中的 “old_text” 替换为 “new_text”。
四、总结
Linux Sed 命令是一个功能强大的流式文本编辑器,可以方便地进行文本的查找、替换和删除等操作。通过熟练掌握 Sed 命令的使用方法,可以提高文本处理效率,并简化复杂的编辑任务。在实际应用中,可以根据具体需求灵活运用 Sed 命令,以达到预期的文本编辑效果。实际工作用,通过组合和修改这些命令,可以应对不同场景下的文本编辑需求。
相关文章:
Linux命令200例:sed对文本进行修改、替换和删除等操作的强大工具(常用)
🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…...
python 合并多个excel文件
使用 openpyxl 思路: 读取n个excel的文件,存储在一个二维数组中,注意需要转置。将二维数组的数据写入excel。 安装软件: pip install openpyxl源代码: import os import openpyxl # 将n个excel文件数据合并到一个…...
【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor
前言 在做性能测试时,如果有一个性能测试结果实时展示的页面,可以极大的提高我们对系统性能表现的掌握程度,进而提高我们的测试效率。但是我们每次打开Jmeter都会有几个硕大的字提示别用GUI模式进行负载测试,而且它自带的监视器效…...
wordpress日主题Ripro9.0最新二开修正源码下载+美化包和插件
日主题Ripro9.0最新二开升级修正源码美化包和插件,RiPro9.0的二开版本新模板,包含2个美化包和全屏水印以及防复制插件。 模板和美化包路径:\wp-content\themes 插件路径:\wp-content\plugins,有兴趣的自行去体验吧...
fib Model Code史海拾贝
文章目录 0. 背景1. 强度等级不一致(20230807)1.1 问题描述(20230807)1.2 问题探索 0. 背景 本文主要记录在学习了解ModelCode的过程中产生的问题。当然,主要是我个人认为有意思的地方。欢迎有共同兴趣的网友留言一起…...
6.7.tensorRT高级(1)-使用onnxruntime进行onnx模型推理过程
目录 前言1. python-ort2. C-ort总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-使用 onnxruntime 进行 on…...
360未来安全研究院笔试题
笔试时间:2020.04.16,15:00-17:30。 岗位:Linux 安全开发工程师(实习生) 题型: 能力测试——逻辑题(20个5分=100分) 专业测试——客观题(40个2分=80分) 专业测试——在线编程题(2个25分=50分) 逻辑题 一共40道题目,很多逻辑推断题,包含数字找规律和图片找…...
Linux SSH 远程连接主机,并执行命令
应用场景 当需要远程到另一台Linux上,并在另一台机器上执行 Shell 命令,则需要注意命令的书写格式 示例说明 远程到 192.158.157.47 机器上,并执行命令 cd /tmp && ./zabbixagent_install.sh && echo Success 1、错误方式…...
FAST协议详解1 不同数据类型的编码与解码
一、概述 FAST协议里不同的数据类型在编码时有非常大的区别,比如整数只需要将二进制数据转为十进制即可,而浮点数则需要先传小数点位数,再传一个整数,最后将二者结合起来才是最终结果。本篇使用openfast自设了一些数据并编码成FA…...
黑马大数据学习笔记5-案例
目录 需求分析背景介绍目标需求数据内容DBeaver连接到Hive建库建表加载数据 ETL数据清洗数据问题需求实现查看结果扩展 指标计算需求需求指标统计 可视化展示BIFineBI的介绍及安装FineBI配置数据源及数据准备 可视化展示 P73~77 https://www.bilibili.com/video/BV1WY4y197g7?…...
网络编程——TCP/IP协议族(IP协议、TCP协议和UDP协议……)
TCP/IP协议族 一、IP协议 1、IP协议简介 IP协议又称网际协议 特指为实现在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议,是网络层中的协议。 2、特点 不可靠:它不能保证IP数据包能成功地到达它的目的地,仅…...
Oracle SQL存储过程能够返回表吗
使用Oracle游标返回表数据 在Oracle存储过程中,我们可以使用游标来返回表的数据。游标是一种类似于指针的数据类型,可以用来遍历和操作结果集。以下是一个示例的Oracle存储过程,通过游标返回表数据: CREATE OR REPLACE PROCEDUR…...
2 Vue使用v-bind来代替{{}}取值
注意!当两个具有共同id的标签都要从数据层拿值时,需要使用div标签,赋予他们共同的id,不然其中有一个会拿不到数据! v-bind用来绑定前标签的属性,然后对属性赋值。{{}}用来对前后标签中的文本赋值。使用方法…...
20230807在WIN10下使用python3将TXT文件转换为DOCX(在UTF8编码下转换为DOCX有多一行的瑕疵)
20230807在WIN10下使用python3将TXT文件转换为DOCX(在UTF8编码下转换为DOCX有多一行的瑕疵) 2023/8/7 12:58 https://translate.google.com/?slen&tlzh-CN&opdocs 缘起,由于google的文档翻译不支持SRT/TXT格式的字幕,因此…...
Flutter(八)事件处理与通知
1.原始指针事件处理 一次完整的事件分为三个阶段:手指按下、手指移动、和手指抬起,而更高级别的手势(如点击、双击、拖动等)都是基于这些原始事件的。 Listener 组件 Flutter中可以使用Listener来监听原始触摸事件 Listener({…...
Java,python,c#,js,c++搞量化交易的接口大全
股票基金api接口地址:https://stockapi.com.cn 不想自己写的:https://stockapi.com.cn 除了牛逼,只剩下牛逼,除了方便,只剩下方便,python不是唯一的量化编程语言 接口说明:日线macd指标 https:/…...
javaAPI(一):String
String的特性 String底层源码 1、String声明为final,不可被继承 2、String实现了Serializable接口:表示字符支持序列化 实现了Comparable接口:表示String可以比较大小 3、String内部定义了final char[] value用于存储字符串 4、通过字面量的…...
数据互通,版本管理优化图文档与BOM数据
在现代企业的产品开发过程中,图文档和BOM数据是不可或缺的关键要素。图文档记录了产品的设计和工程信息,而BOM数据则明确了产品所需物料的清单和规格。然而,由于数据的复杂性和版本变更的频繁性,图文档与BOM数据之间的协作和管理常…...
【CSS】旋转中的视差效果
效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…...
【ASP.NET MVC】使用动软(一)(9)
一、解决的问题 前文为解决数据库操作设计的 TestMysql 类,仅简单地封装了一个Query函数,代码如下: public class TestMysql{public static string SqlserverConnectStr "server127.0.0.1;charsetutf8;user idroot;persistsecurityin…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
从实验室到产业:IndexTTS 在六大核心场景的落地实践
一、内容创作:重构数字内容生产范式 在短视频创作领域,IndexTTS 的语音克隆技术彻底改变了配音流程。B 站 UP 主通过 5 秒参考音频即可克隆出郭老师音色,生成的 “各位吴彦祖们大家好” 语音相似度达 97%,单条视频播放量突破百万…...
内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译: ### 胃肠道癌症的发病率呈上升趋势,且有年轻化倾向(Bray等人,2018&#x…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
python读取SQLite表个并生成pdf文件
代码用于创建含50列的SQLite数据库并插入500行随机浮点数据,随后读取数据,通过ReportLab生成横向PDF表格,包含格式化(两位小数)及表头、网格线等美观样式。 # 导入所需库 import sqlite3 # 用于操作…...
AT模式下的全局锁冲突如何解决?
一、全局锁冲突解决方案 1. 业务层重试机制(推荐方案) Service public class OrderService {GlobalTransactionalRetryable(maxAttempts 3, backoff Backoff(delay 100))public void createOrder(OrderDTO order) {// 库存扣减(自动加全…...
