用sed替换版本范围

时间:2012-08-30 09:17:53

标签: linux sed

我正在尝试更换版本范围 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' 

为我工作。但这仍然过于笼统。

1 个答案:

答案 0 :(得分:0)

我不完全明白。你想要匹配什么字符串?如果是version>[1.6,1.7),则此替换应该有效:

s/version>\[1\.6,1\.7)/version>[1.7,1.8)/g

没有必要逃避>,但你应该逃避[和点,因为它们具有特殊意义。