我正在尝试更换版本范围 1.6,1.7,1.7,1.8如下。
sed -i 's/version\>[1.6,1.7)/version\>[1.7,1.8)/g'
我试过逃避[,),.等但它仍不匹配[1.6,1.7]
我错过了什么?
这是我用来替换版本的完整命令:
find . -iname 'pom.xml' -print -exec sed -i 's/version\>\[1.6,1.7)/version\>[1.7,1.8)/g' {} \;
GNU sed版本4.1.5
Linux * * 2.6.18-238#1 SMP Fri Oct 28 08:42:39 PDT 2011 x86_64
更新
sed -i 's/version\>.*1.6,1.7)/version\>[1.7,1.8)/g'
为我工作。但这仍然过于笼统。
答案 0 :(得分:0)
我不完全明白。你想要匹配什么字符串?如果是version>[1.6,1.7)
,则此替换应该有效:
s/version>\[1\.6,1\.7)/version>[1.7,1.8)/g
没有必要逃避>
,但你应该逃避[
和点,因为它们具有特殊意义。