用sed只替换每一行的第一个old_text

简介: 用sed只替换每一行的第一个old_text

在Linux中,你可以使用sed命令配合正则表达式来实现这个需求。下面是一个示例:

sed 's/old_text/new_text/;T' file.txt

这里的命令含义是:

  • s/old_text/new_text/:这是替换命令,它会查找每一行中的第一个old_text并替换为new_text。
  • ;T:如果前面的s命令执行了替换(即该行存在old_text并且成功替换了),则跳过后续命令;否则(即该行不存在old_text或者已经替换过第一个old_text了),继续处理下一行。

这样就实现了只替换每一行的第一个old_text。

然而,需要注意的是,如果old_text包含特殊字符,可能需要进行转义。例如,如果old_text包含斜线(/),你需要写成\/old_text/。如果它包含反斜杠(\),则需要写成\\old_text。

另外,如果你的sed版本不支持;T组合,可以使用以下方式:

sed -E '0,/(old_text)/ s//new_text/' file.txt

这里 -E 参数表示使用扩展正则表达式,0,/(old_text)/ 表示从行首到第一个 old_text 之间的范围,然后在这个范围内执行替换操作,因此只会替换每行的第一个 old_text。

目录
相关文章
|
运维 Linux
Linux NTP服务详解
Linux NTP服务详解
1289 1
|
Linux
Linux 系统时间同步 ​使用 NTP 服务时间同步​
Linux 系统时间同步 ​使用 NTP 服务时间同步​
1140 2
|
中间件 Linux
Centos中配置开机自启动的方式汇总(上)
Centos中配置开机自启动的方式汇总(上)
2952 0
Centos中配置开机自启动的方式汇总(上)
|
监控 Linux
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡
887 13
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡
Echarts参数属性学习xAxis与yAxis演示案例
Echarts参数属性学习xAxis与yAxis演示案例
570 0
Echarts参数属性学习xAxis与yAxis演示案例
|
Ubuntu Shell Linux
Shell脚本的常用执行方式、bash 和 sh 的关系、子shell、Centos 默认的解析器是 bash、Linux 提供的 Shell 解析器、Shell 概述、Shell 脚本入门
采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x 权限)、采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)、在脚本的路径前加上“.”或者 source(了解)原因: 前两种方式都是在当前 shell 中打开一个子 shell 来执行脚本内容,当脚本内容结束,则 子 shell 关闭,回到父 shell 中。第三种,也就是使用在脚本路径前加“.”或者 source 的方式,`可以使脚本内容在当前 shell 里执行,而无需打开子 shell!`这也是为什么我们每次要修改完
3141 1
Shell脚本的常用执行方式、bash 和 sh 的关系、子shell、Centos 默认的解析器是 bash、Linux 提供的 Shell 解析器、Shell 概述、Shell 脚本入门
|
存储
鸿蒙开发:父组件如何调用子组件中的方法?
也许大家可能会有疑问,子组件更新UI,直接由装饰器触发不就行了,希望大家能够明白,以上呢只是简单的案例,在实际的开发中,子组件方法中可能很多的逻辑,比如网络请求,比如数据存储等等,并不是简单的UI更新。
679 1
|
运维 Prometheus 监控
从文化到实践:DevOps的基本概念与核心实践详解
从文化到实践:DevOps的基本概念与核心实践详解
799 5
|
编解码
四、ArkTS 常用组件-图片(Image)
ArkTS 常用组件-图片(Image)简介:Image 组件用于在应用中显示图片,支持本地和网络图片的加载,提供了多种参数类型如 string、Resource 和 media.PixelMap。常用属性包括图片尺寸设置(width()、height())、图片缩放模式(objectFit())及图片插值(interpolation()),确保图片在不同场景下的最佳显示效果。此外,Image 组件还支持图片资源的灵活引用方式,如通过 $r() 函数引用 resources 目录下的图片资源。
1741 2
|
算法 安全 Linux
Ansible 中的copy 复制模块应用详解
Ansible 中的copy 复制模块应用详解
1132 1