替换IP字符串

时间:2010-12-07 11:45:38

标签: sed

我正在尝试在文件中sed字符串。这是一个文件sed_tmp,有一个字符串:

, "127.0.0.2");

这是我使用的sed命令:

sed -r 's/[0-9{1,3}]\.[0-9{1,3}]\.[0-9{1,3]\.[0-9{1,3}]/XXX.XXX.XXX.XXX/g' ./sed_tmp

,结果是

, "12XXX.XXX.XXX.XXX");

但我需要结果

, "XXX.XXX.XXX.XXX");

我做错了什么?

2 个答案:

答案 0 :(得分:2)

在[]

之外写{}
sed -r 's/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/XXX.XXX.XXX.XXX/g' ./sed_tmp

答案 1 :(得分:1)

这有效:

 sed "s/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/XXX.XXX.XXX.XXX/g"

我从未见过你在那里使用的{1,3}语法,你是否有链接到描述它的地方?

编辑:似乎sed使用它的方式略有不同:http://www.grymoire.com/Unix/Sed.html#uh-35