sed使用扩展正则表达式时, -i 要写在 -r 或 -E 的后面

sed使用扩展正则表达式时, -i 要写在 -r 或 -E 的后面

前言

-r 等效 -E , 启用扩展正则表达式

-E是新叫法,更统一,能增强可移植性 , 但老系统,比如 CentOS-7 的 sed 只能用 -r

###  Ubuntu24.04-E, -r, --regexp-extendeduse extended regular expressions in the script(for portability use POSIX -E).###   CentOS7.9-r, --regexp-extended在脚本中使用扩展正则表达式###   Fedora39-E, -r, --regexp-extended在脚本中使用扩展正则表达式(为保证可移植性使用 POSIX -E)。###   Rocky Linux 9.1 (Blue Onyx) -E, -r, --regexp-extendeduse extended regular expressions in the script(for portability use POSIX -E).
  1. sed在未开启扩展正则前, 使用+加号 和 ?问号, 前面要加上反斜杠\ 才能表示 一多(\+) 和 零一(\?)
    在开启扩展正则后, 不用加反斜杠\

  2. -i 是将结果保存到文件

  3. 新版本 r 和 E 可以都写上 -r , -E , -rE , -Er 都可以


经测试, 如果将 -i 写在 -r-E之前, 则扩展正则不会生效 , 如 -ir , -iE , irE

-r-E 写在 -i 之前, 如 -ri , -Ei , -Eri -rEi 就能生效扩展正则

加上 e 可以写成 -Erie , -rEie

在 CentOS-7.9 上的测试

[root@3050 ttt]# echo aaa > t
[root@3050 ttt]# cat t
aaa
[root@3050 ttt]# sed -ire 's/a+/bbbbbbbbbb/g' t
[root@3050 ttt]# cat t
aaa
[root@3050 ttt]# sed -rie 's/a+/bbbbbbbbbb/g' t
[root@3050 ttt]# cat t
bbbbbbbbbb

在 Ubuntu-24.04 上测试

root@TxCloud:~/ttt# echo aaa > t
root@TxCloud:~/ttt# ls
t
root@TxCloud:~/ttt# cat t
aaa
root@TxCloud:~/ttt# sed -ir 's/a+/bbbbbbbbb/g' t
root@TxCloud:~/ttt# cat t
aaa
root@TxCloud:~/ttt# sed -iE 's/a+/bbbbbbbbb/g' t
root@TxCloud:~/ttt# cat t
aaa
root@TxCloud:~/ttt# sed -iEr 's/a+/bbbbbbbbb/g' t
root@TxCloud:~/ttt# cat t
aaa
root@TxCloud:~/ttt# sed -Eri 's/a+/bbbbbbbbb/g' t
root@TxCloud:~/ttt# cat t
bbbbbbbbb

在 Rocky Linux 9.1 (Blue Onyx) 的测试

[root@u16slc ttt]# echo 111 > t
[root@u16slc ttt]# ls
t
[root@u16slc ttt]# cat t
111
[root@u16slc ttt]# sed -ir 's/1+//g' t
[root@u16slc ttt]# cat t
111
[root@u16slc ttt]# sed -iE 's/1+//g' t
[root@u16slc ttt]# cat t
111
[root@u16slc ttt]# sed -iEr 's/1+//g' t
[root@u16slc ttt]# cat t
111
[root@u16slc ttt]# sed -irE 's/1+//g' t
[root@u16slc ttt]# cat t
111
[root@u16slc ttt]# sed -rEi 's/1+//g' t
[root@u16slc ttt]# cat t[root@u16slc ttt]# 

在 Fedora 40 上的测试

root@n1-40-2-6:~/ttt# echo 111 > t
root@n1-40-2-6:~/ttt# cat t
111
root@n1-40-2-6:~/ttt# sed -iE 's/1+/222222222222222222222222/g' t
root@n1-40-2-6:~/ttt# cat t
111
root@n1-40-2-6:~/ttt# sed -Ei 's/1+/222222222222222222222222/g' t
root@n1-40-2-6:~/ttt# cat t
222222222222222222222222

在 Rocky Linux 9.4 (Blue Onyx) 的测试

[root@103R94 ttt]# echo aaa > t
[root@103R94 ttt]# cat t
aaa
[root@103R94 ttt]# sed -irEe 's/a+/AAAAAAAAAAAA/g' t
[root@103R94 ttt]# cat t
aaa
[root@103R94 ttt]# sed -rEie 's/a+/AAAAAAAAAAAA/g' t
[root@103R94 ttt]# cat t
AAAAAAAAAAAA

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

友思特新闻 | 友思特荣获广州科技创新创业大赛智能装备行业赛初创组优胜企业!

2024年11月19日,第十三届中国创新创业大赛(广东广州赛区)暨2024年广州科技创新创业大赛智能装备行业赛颁奖典礼隆重举行。 赛事奖项介绍:广州科技创新创业大赛智能装备行业赛 第十三届“中国创新创业大赛(广东广州赛区…

Docker3:docker基础1

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

MySQL - 数据库基础 | 数据库操作 | 表操作

文章目录 1、数据库基础1.1为什么要有数据库1.2主流的数据库1.3连接MySQL1.4服务器、数据库、表的关系1.5 MySQL框架1.6 SQL分类1.7储存引擎 2.数据库操作2.1创建数据库2.2字符集和校验规则2.3删除数据库2.4修改数据库2.5备份与恢复2.6查看连接情况 3.表的操作3.1创建表3.2查看…

通过vite+vue3+pinia从0到1搭建一个uniapp应用

最近项目上要做一个app,选择了用uniapp作为开发框架;我大概看了一下uniapp的文档,根据文档从0到1搭了一个uniapp应用供大家参考。 因为本人习惯使用了WebStorm编译器,但是uniapp官方推荐使用HBuilder搭建,如果和我一样…

学习路之phpstudy--安装mysql5.7后在my.ini文件中无法修改sql_mode

windows环境下使用phpstudy安装mysql5.7后需要修改mysql中的sql_mode配置,但是在phpstudy中打开mysql配置文件my.ini后, 通过查找找不到sql_mode或sql-mode, 此时无法在my.ini文件中直接进行修改,可以使用mysql命令进行修改&#…

IDEA:2023版远程服务器debug

很简单,但是很多文档没有写清楚,wocao 一、首先新建一个远程jvm 二、配置 三、把上面的参数复制出来 -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 四、然后把这串代码放到服务器中(这里的0.0.0.0意思是所有IP都能访问&a…

ts: 定义一个对象接收后端返回对象数据,但是报错了有红色的红线为什么

问&#xff1a; const backendProgressData ref<object>&#xff08;{}&#xff09; 这是我的代码&#xff0c;但是当我进行使用的时候&#xff1a; backendProgressData.value xxxx接口返回数据progressData:{percentage:123,text:"文字"} 在template中{{…

解决Docker环境变量的配置的通用方法

我们部署的很多服务都是以Docker容器的形式存在的。 在运行Docker容器前&#xff0c;除了设置网络、数据卷之外&#xff0c;还需要设置各种各样的环境变量。 有时候&#xff0c;由于容器版本的问题&#xff0c;一些文档没有及时更新&#xff0c;可能同时存在多个新旧版本的环…

【腾讯云产品最佳实践】腾讯云CVM入门技术与实践:通过腾讯云快速构建云上应用

目录 前言 什么是腾讯云CVM&#xff1f; 腾讯云CVM的技术优势 基于最佳技术实践&#xff0c;使用腾讯云CVM搭建应用 1. 开通CVM实例 2. 连接CVM实例 3. 配置Web环境 4. 部署PHP应用 腾讯云CVM行业应用案例&#xff1a;电商平台的双十一攻略 1. 弹性伸缩解决高并发问题…

51c嵌入式~IO合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/11697814 一、STM32串口通信基本原理 通信接口背景知识 设备之间通信的方式 一般情况下&#xff0c;设备之间的通信方式可以分成并行通信和串行通信两种。并行与串行通信的区别如下表所示。 串行通信的分类 1、按照数据传…

七、电机三环控制

电机三环控制指的是&#xff0c;直流有刷电机三环&#xff08;电流环速度环位置环&#xff09;PID 控制。 1、三环PID控制原理 三环 PID 控制就是将三个 PID 控制系统&#xff08;例如&#xff1a;电流环、速度环以及位置环&#xff09;串联起来&#xff0c;然后对前一个系统…

NLP论文速读(多伦多大学)|利用人类偏好校准来调整机器翻译的元指标

论文速读|MetaMetrics-MT: Tuning Meta-Metrics for Machine Translation via Human Preference Calibration 论文信息&#xff1a; 简介&#xff1a; 本文的背景是机器翻译&#xff08;MT&#xff09;任务的评估。在机器翻译领域&#xff0c;由于不同场景和语言对的需求差异&a…

【Vue】Vue指令

目录 概念 作用 分类 内容渲染指令 属性绑定指令 事件绑定指令 条件渲染指令 v-if/v-else-if/v-else多分支渲染 v-show和v-if的区别 列表渲染指令 v-for中的key属性 双向绑定指令 示例&#xff1a;图片切换 示例&#xff1a;可折叠面板 示例&#xff1a;书架…

C++:类和对象(三)

1.深入了解构造函数 1.1初始化列表 引入&#xff1a;我们首先要知道&#xff0c;在类中我们是声明变量&#xff0c;在实例化的时候才是开空间&#xff0c;在调用构造函数的时候又分两段&#xff0c;一段是定义&#xff08;所有的成员变量进行定义&#xff09;&#xff0c;一段…

北京申请中级职称流程(2024年)

想找个完整详细点的申请流程资料真不容易&#xff0c;做个分享送给需要的人吧。 不清楚为什么说文章过度宣传&#xff0c;把链接和页面去掉了&#xff0c;网上自己找一下。 最好用windows自带的EDGE浏览器打开申请网站&#xff0c;只有在开始申请的时间内才可以进行网上申报&…

好用的js组件库

lodash https://www.lodashjs.com/https://www.lodashjs.com/ uuid 用于生成随机数&#xff0c;常用于生成id标识 GitHub - uuidjs/uuid: Generate RFC-compliant UUIDs in JavaScripthttps://github.com/uuidjs/uuid dayjs 常用于时间的处理 安装 | Day.js中文网 (fenxi…

php:使用socket函数创建WebSocket服务

一、前言 闲来无事&#xff0c;最近捣鼓了下websocket&#xff0c;但是不希望安装第三方类库&#xff0c;所以打算用socket基础函数创建个服务。 二、构建websocket服务端 <?phpclass SocketService {// 默认的监听地址和端口private $address 0.0.0.0;private $port 8…

Tailscale 自建 Derp 中转服务器(全程无 Docker + 无域名纯 IP 版本)

文章目录 整体大纲目的&#xff1a;为什么要建立 Derp 中转服务器云服务器安装 DerpDerp 中转服务器介绍安装 Go 环境通过 Go 安装 Derp处理证书文件自签一个域名给 Derp验证 Derp 是否启动 云服务器安装并登录 Tailscale第一种组合&#xff1a; 官方 Tailscale 账号 自己的 D…

shell--第一次作业

1.接收用户部署的服务名称 # 脚本入口 read -p "请输入要部署的服务名称&#xff1a;" service_name 2.判断服务是否安装 # 判断服务是否安装 if rpm -q "$service_name" &>/dev/null; then echo "服务 $service_name 已安装。" 已…

项目部署问题bug记录(长期更新)

一、编译相关 1.submodules/simple-knn/simple_knn.cu(90): error: identifier "FLT_MAX" is undefined me.minn { FLT_MAX, FLT_MAX, FLT_MAX }; 部署photoreg工程&#xff0c;在编译simple_knn的时候&#xff0c;报错&#xff1a; (photoreg) leelee…