Linux如何使用sed命令进行文本替换

news/2024/9/17 13:41:47/ 标签: linux, 运维, 服务器

在Linux中,sed(Stream Editor)是一个用于处理文本流的命令行工具,它非常适合用于执行基本的文本转换。sed可以读取输入的文本文件,根据指定的指令对文本进行处理,并将结果输出到标准输出设备。以下是如何使用sed命令进行文本替换的详细说明:

1. 基本语法

sed命令的基本语法如下:

sed 's/regexp/replacement/flags' file
  • regexp:正则表达式,用于匹配要替换的文本。
  • replacement:替换文本,即要替换成的新文本。
  • flags:可选的标志,用于修改替换的行为。
2. 替换标志
  • g:全局替换,对所有匹配的文本进行替换,默认只替换每行的第一个匹配项。
  • i:忽略大小写,使匹配不区分大小写。
3. 示例
  1. 替换文件中所有出现的字符串
sed 's/old_string/new_string/g' file.txt
  1. 这将在file.txt文件中查找所有old_string并将其替换为new_string
  2. 替换每行中的第一个匹配项
sed 's/old_string/new_string/' file.txt
  1. 默认情况下,sed只替换每行的第一个匹配项。
  2. 忽略大小写进行替换
sed 's/old_string/new_string/i' file.txt
  1. 这将忽略大小写,替换old_string的所有匹配项。
  2. 使用正则表达式进行复杂替换
sed 's/\(regexp\)/replacement/' file.txt
  1. 使用圆括号()创建捕获组,可以在替换文本中引用这些捕获组。
  2. 直接修改文件
    sed默认不会修改原始文件,如果你想直接修改文件,可以使用-i选项:
sed -i 's/old_string/new_string/g' file.txt
  1. 使用扩展正则表达式
    在某些sed版本中,使用-r选项可以启用扩展正则表达式:
sed -r 's/regexp/replacement/' file.txt
BASH 复制 全屏
4. 注意事项
  • 使用sed进行替换时,建议使用引号(单引号或双引号)将替换表达式括起来,以防止shell对特殊字符进行解释。
  • 如果替换文本中包含特殊字符(如&, \, /等),需要进行适当的转义。
  • 在执行替换操作之前,建议备份原始文件,以防替换结果不符合预期。

综上所述,通过使用sed命令,你可以在Linux系统中轻松地对文本文件进行复杂的文本替换操作。


http://www.ppmy.cn/news/1524927.html

相关文章

数据库的约束

数据库约束 数据库对数据的合法性进行校验检查,避免数据库中被插入,修改一些非法的数据。 数据库约束类型 not null - 指示某列不能存储 null值 下图就是具体展示,未进行约束时可以进行填入null,约束之后就不能进行填入&#…

直播相关01-录制麦克风声音,QT上 .pro 将 linux,mac和windows上配置为三种可以共享, 在.pro文件中 message 的作用

一 QT 上的 .pro 文件 将 linux,mac和windows上配置设置为可以共享 1. 先来看文件夹布局 2. 再来看 QT 中的 .pro文件 .pro 文件的写法 QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler …

git svn 日记

1. git log -p -1 --name-only 该命令用于查看最新的一次提交记录的详细信息,包括文件更改情况。 git log:显示 Git 仓库的提交历史。-p:显示每次提交的差异 (diff),也就是文件内容的修改部分。-1:表示只显示最近的一…

Vue3.0项目实战(三)——大事件管理系统首页 layout 架子与文章分类的实现

目录 1. 首页 layout 架子 [element-plus 菜单] 1.1 基本架子拆解 2. 登录访问拦截 2.1 需求 2.2 vue3 和 vue2 中的 Vue-Router 区别 3. 用户基本信息获取&渲染 4. 退出功能 [element-plus 确认框] 5. 文章分类页面 - [element-plus 表格] 5.1 基本架子 - PageCo…

PHP即刻送达同城派送小程序系统

即刻送达,同城派送小程序系统让生活更便捷 🚀 瞬间连接,即刻送达的奇迹 你是否曾经因为等待快递而焦急万分?是否渴望有一种方式能让物品像魔法一样瞬间出现在你面前?现在,有了“即刻送达同城派送小程序系…

RHCE--复习(一)之系统延迟任务及定时任务

系统延迟任务及定时任务 #关闭图形命令(第二次开启的时候)[rootlocalhost ~]# systemctl set-default multi-user.target#windos系统级别类型 0-6个级别#查看级别类型[rootlocalhost ~]# runlevel 一、延迟任务 在系统中我们的维护工作大多数时在服务器…

MySQL定长窗口SQL

SQL 定长窗口(Sliding Window)是一种使用窗口函数来处理一段固定范围内的数据。这种方式可以对一定范围内的数据进行聚合或分析,并且窗口会随着数据的行逐步滑动。 在 SQL 中,窗口函数常与 OVER() 子句一起使用,定义一…

Swift 创建扩展(Extension)

类别(Category) 和 扩展(Extension) 的 用法很多. 常用的 扩展(Extension) 有分离代码和封装模块的功能,例如登陆页面有注册功能,有登陆功能,有找回密码功能,都写在一个页面就太冗余了,可以考虑使用 扩展(Extension) 登陆页面的方法来分离代码 本文介绍Swift 如何创建扩展(Ex…

Linux cut命令详解使用:掌握高效文本切割

cut 是 Linux 中一个用于从文本文件或标准输入中提取指定字段的命令。它根据分隔符或者字符位置来裁剪文本,是处理文本文件中的字段、列和子字符串的常用工具。 基本语法 cut [选项] 文件或 命令 | cut [选项]常用选项 -b:按字节位置切割&#xff08…

HTML+CSS箭头闪动

HTML+CSS实现箭头闪动,效果如下: 代码如下: <div class="design_ani_item"><div class="arrow"><em></em></div><div class="arrow"><em></em></div><div class="arrow"…

text-overflow:ellipsis 不生效的情况解决办法

<swiper :autoplay"true" :interval"3000" :duration"1000" circular vertical><swiper-item v-for"item in 4">文字内容文字内容文字内容文字内容文字内容文字内容文字内容文字内容文字内容文字内容文字内容文字内容文字…

Jmeter_循环获取请求接口的字段,并写入文件

通过JSON提取器、计数器、beanshell&#xff0c;循环读取邮箱接口的返回字段&#xff0c;筛选出flag为3的收件人&#xff0c;并写入csv文件。 1、调用接口&#xff0c;获取所有的邮件$.data.total.count&#xff1b; 2、beanshell后置处理total转换成页码&#xff0c;这里是227…

Android 进程间通信

在 Android 中&#xff0c;进程间通信 (IPC, Inter-Process Communication) 是指在不同进程之间进行数据交换的机制。Android 提供了几种主要的 IPC 方法&#xff0c;每种方法适用于不同的场景。 1. Binder 机制 Binder 是 Android 核心的 IPC 机制&#xff0c;底层是通过操作…

联蔚盘云再获发明专利授权—多云环境下云资源自动化运维的方法与设备

上海联蔚盘云科技有限公司荣获了一项重要的发明专利——“多云环境下云资源自动化运维的方法与设备”&#xff08;专利授权号&#xff1a;CN 112667468 B&#xff09;。该专利旨在解决企业在多云环境下云资源管理和自动化运维的难题&#xff0c;标志着公司在云计算技术领域取得…

Facebook Marketplace:防封与出单策略

Facebook Marketplace为用户提供一个在本地交易商品的平台&#xff0c;包括二手商品、房屋出租和家政服务等都可以在上面检索到相关信息。据数据统计&#xff0c;每月约有4亿人使用Facebook Marketplace功能&#xff0c;潜力巨大&#xff0c;为商家提供了广阔的商机。然而&…

Java集成开发环境(IDE)之 => “IntelliJ IDEA“ 安装

一、软件介绍 IntelliJ IDEA 是一款由 JetBrains 公司开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它主要用于 Java 语言的开发&#xff0c;但同时也支持多种其他编程语言&#xff0c;如 Kotlin、Groovy、Scala、Python、Ruby、PHP、JavaScript、TypeScript 等…

Linux创建虚拟磁盘并分区格式化

快速创建一个虚拟磁盘 你可以通过以下步骤在Linux上虚拟一个磁盘&#xff0c;并将其挂载到 /mnt/ 目录下&#xff1a; 步骤 1: 创建一个虚拟磁盘文件 使用 dd 命令创建一个虚拟磁盘文件&#xff08;例如大小为1GB&#xff09;&#xff1a; dd if/dev/zero of/root/virtual_…

算力服务器和GPU服务器的区别是什么?

随着互联网科技的快速发展&#xff0c;服务器的类型也变得多种多样了&#xff0c;今天小编就来为大家介绍一下算力服务器和GPU服务器还有他们之间的区别是什么&#xff1f; 算力服务器通常是指具有着较高计算能力的服务器&#xff0c;算力服务器一般都是用于处理大量的计算任务…

MFC工控项目实例之十二板卡测试信号输出界面

承接专栏《MFC工控项目实例之十一板卡测试信号输入界面》 1、在BoardTest.h文件中添加代码 CButtonST m_btnStart[16],m_btnStart_O[16];2、在BoardTest.cpp文件中添加代码 UINT No_IDC_CHECK_O[16] {IDC_CHECK16,IDC_CHECK17,IDC_CHECK18,IDC_CHECK19,IDC_CHECK20,IDC_CH…

Android-10分区存储介绍及百度APP适配实践(1)

1.2 应用数据保护: 添加外部存储应用私有目录文件访问限制&#xff0c; 应用即使申请了存储权限也不能访问其他应用外部存储私有目录文件 1.3 用户数据保护&#xff1a; 添加pdf、office、doc等文件的访问限制&#xff0c;用户即使申请了存储权限也不能访问其他应用创建的pd…