我有两个字符串:
字符串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