能否用单个sed正则表达式完成多场景python-lib版本号替换?
可以用单个sed表达式完成该替换
直接使用支持扩展正则的sed命令就能实现统一替换:
sed -E 's/python-lib([=~]=)(1\.0|1\.1)/python-lib>=2.0/g'
表达式细节说明:
-E:启用扩展正则模式,无需对括号、竖线等元字符额外转义,让表达式更简洁易读python-lib([=~]=):匹配python-lib后跟==或~=的前缀部分,括号用于分组捕获匹配的版本约束符号(1\.0|1\.1):精准匹配目标版本号1.0或1.1,.在正则中是通配符,所以用\.转义表示实际的点号g:全局替换标记,确保一行内所有符合条件的匹配项都会被替换,而非仅第一个
举个测试例子,输入以下内容:
python-lib1.0
python-lib~=1.0
python-lib1.1
python-lib~=1.1
执行命令后会统一输出:
python-lib>=2.0
python-lib>=2.0
python-lib>=2.0
python-lib>=2.0
内容的提问来源于stack exchange,提问作者user19192927
相关产品推荐
相关产品推荐

