正则表达式:不包含字符串

正则表达式:不包含字符串

我有两个字符串:

字符串1:platform1-05_02_00.001:platform
字符串2:platform1-domino-05_02_00.001:platform

在第一个中,版本(05_02_00.001)要更改,首先我尝试了正则表达式:

sed -i 's/platform1-.*:platform/platform1-06:hybrisb/g' file

但它改变了 2 个字符串。这就是为什么我正在寻找一些正则表达式来告诉 sed 查找不是“多米诺骨牌”(不包含多米诺骨牌)的字符串

答案1

一种方法是:

sed '/domino/! s/platform1-.*:platform/platform1-06:hybrisb/g' file

/domino/!选择不匹配的行domino

答案2

考虑使用以下命令跳过包含“platform-domino”的行n

sed '/platform1-domino/ n; s/platform1-.*:platform/platform1-06:hybrisb/g' file

或者,搜索并替换,但消除作为匹配可能性的字母:

sed 's/platform1-[^d][^o][^m][^i][^n][^o].*:platform/platform1-06:hybrisb/g' file

相关内容