在Solaris 5.10下,为什么此正则表达式不匹配像tag =" 12447"
这样的行 sed "s/tag=\"[0-9]+\"/emptytag/" test.xml
(我注意到-r未在sed版本中实现)
答案 0 :(得分:2)
在严格的posix模式下,+
符号不能用于表示"一个或多个"东西。您可以使用{1,}
范围代替(当然是转义):
echo 'tag="12447"' | sed --posix "s/tag=\"[0-9]\{1,\}\"/emptytag/"
emptytag
请注意,您实际上并不需要--posix
,我只是用它来禁用我的sed
版本中的所有GNU扩展程序:
echo 'tag="12447"' | sed "s/tag=\"[0-9]\{1,\}\"/emptytag/"
emptytag