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

news2025/1/19 2:56:31

在这里插入图片描述

🏆作者简介,黑夜开发者,全栈领域新星创作者✌。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 命令,以达到预期的文本编辑效果。实际工作用,通过组合和修改这些命令,可以应对不同场景下的文本编辑需求。

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

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

相关文章

Framework才是Android 开发的热门技术~

相信大家都有感觉到今年的市场竞争的激烈,投出简历并不像往年一样立马就有回应,大多是这种情况:投出简历没有停歇,状态却是70%未读,30%已读。 这种情况并不是说市场落寞了,不招人了,而是经过了…

Windows下调试UEFI程序:Visual Studio调试

以edk2\MdeModulePkg\Application\HelloWorld这个项目作为调试目标。 1. 使用VS2017建立Makefile工程 VS2017, 新建 project,取名X64dbg_vs。 Visual C > Other > Makefile Project, 注意项目路径为HelloWord程序路径。 随便填写config中的字符串&#xff…

决策树和随机森林对比

1.用accuracy来对比 # -*-coding:utf-8-*-""" accuracy来对比决策树和随机森林 """ from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_wine#(178, 13…

C++ STL vector

目录 一.认识vector 二.vector的使用 1.vector的构造函数 2.vector的迭代器 2.1 begin(),end() 2.2 rbegin(),rend() 2.3 迭代器初始化对象 3. vector…

宝塔Linux面板点击SSL闪退打不开?怎么解决?

宝塔Linux面板点击SSL证书闪退如何解决?旧版本的宝塔Linux面板确实存在这种情况,如何解决?升级你的宝塔Linux面板即可。新手站长分享宝塔面板SSL闪退的解决方法: 宝塔面板点击SSL证书闪退解决方法 问题:宝塔Linux面板…

【脚踢数据结构】链表(1)

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,Linux基础,ARM开发板,软件配置等领域博主🌍快上🚘,一起学习,让我们成为一个强大的攻城狮!送给自己和读者的一句鸡汤🤔&…

【果树农药喷洒机器人】Part3:变量喷药系统工作原理

文章目录 一、变量喷药系统工作原理二、液压通路设计与控制系统封装2.1液压通路设计2.2 控制系统总体封装 三、喷头测定与布置实验3.1喷雾角度测定实验3.2确定喷头布置间距 一、变量喷药系统工作原理 果树喷药机器人通过现代测量技术获取果树冠层参数信息,并对获取…

【Linux:线程池】

文章目录 1 线程池概念2 第一个版本的线程池3 第二个版本的线程池4 第三个版本的线程池5 STL中的容器以及智能指针的线程安全问题6 其他常见的各种锁7 读者写者问题(了解) 1 线程池概念 一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而…

16-2_Qt 5.9 C++开发指南_使用样式表Qss自定义界面

进行本篇介绍学习前,请先参考链接01_1_Qt工程实践_Qt样式表Qss,后再结合本篇进行融合学习如何使用样式表定义界面。 文章目录 1. Qt样式表2. Qt样式表句法2.1 一般句法格式2.2 选择器 (selector)2.3 子控件(sub-controls)2.4 伪状…

neo4j的CQL命令实例演示

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

vim学习笔记(致敬vim作者)

vim cheat sheet 30. vim 删除大法 vim 删除某个字符之后改行的其他的字符?删除某行之后的其他行?删除某个字符之后的其他字符?【1】删除单个字符? 跳到要删除的字符位置 按下d键然后按下shift 4键 【2】删除某行之后的其他行…

List list=new ArrayList()抛出的ArrayIndexOutOfBoundsException异常

1.应用场景,今天生产日志监控到一下ArrayList 进行add 异常,具体日志如下: eptionHandler.handler(178): TXXYBUSSINESS|执行异常 java.util.concurrent.CompletionException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bo…

激活函数总结(一):ReLU及其变体

激活函数介绍(一) 1 引言2 常用激活函数介绍2.1 Sigmoid激活函数2.2 Tanh激活函数2.3 ReLU激活函数2.4 Leaky ReLU激活函数2.5 Parametric ReLU(PReLU)激活函数2.6 Swish激活函数 3. 总结 介绍的激活函数都在目录中有所展示&#…

VLE基于预训练文本和图像编码器的图像-文本多模态理解模型:支持视觉问答、图文匹配、图片分类、常识推理等

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实…

DROP USER c##xyt CASCADE > ORA-01940: 无法删除当前连接的用户

多创建了一个用户,想要给它删除掉 一 上执行过程,确实删除成功了 Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsSQL> DR…

用excel格式书写的接口用例执行脚本

创建测试用例和测试结果集文件夹: excel编写的接口测试用例如下: 1 encoding 响应的编码格式。所测项目大部分是utf-8,有一个特殊项目是utf-8-sig 2 params 对应requests的params 3 data,对应requests的data 有些参数是动态的&a…

C#,数值计算——查找等价类(Find equivalence classes)的计算方法及其源程序

1 等价类的定义 2 Examples 3 Partitions 4 C#源代码 using System; namespace Legalsoft.Truffer { /// <summary> /// Find equivalence classes /// </summary> public class EClass { public EClass() { } pub…

有没有好用的在线画图工具推荐?

绘画是设计师最常见的工作之一&#xff0c;设计师对在线绘画工具的要求越来越高&#xff0c;市场上也出现了各种在线绘画工具&#xff0c;让设计师不知道如何选择高质量的在线绘画工具&#xff0c;一个好的在线绘画工具不仅可以让你轻松绘画&#xff0c;而且可以让你的工作效率…

android studio内存分析之Memory profiler的使用

目录 Android Studio中内存分析工具Memory profiler的使用1. 打开Memory Profiler2. 工具使用3. 内存选项说明4. 内存性能分析器概览5. 内存计算方式6. 查看内存分配7. 捕获java/kotlin方式查看内存分配8. 堆转储文件导入和导出 内存性能分析器中的泄漏检测 Android Studio中内…

带你了解—使用Ubuntu系统,公网环境下SSH远程树莓派

公网环境下Ubuntu系统SSH远程树莓派 文章目录 公网环境下Ubuntu系统SSH远程树莓派前言 1. 安装cpolar客户端2. 安装完成后输入指令3. ubuntu系统输入命令 前言 树莓派作为低功耗、小型化的硬件设备&#xff0c;其功能和运算能力并未过度缩水&#xff0c;在不少场景中&#xff…