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

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 类&#xff0c;仅简单地封装了一个Query函数&#xff0c;代码如下&#xff1a; public class TestMysql{public static string SqlserverConnectStr "server127.0.0.1;charsetutf8;user idroot;persistsecurityin…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...