我正在尝试在文件中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");
我做错了什么?
答案 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