为什么perl -pi.bak -e 's/ERR/OK/g' local.log 没有修改文件?

为什么perl -pi.bak -e 's/ERR/OK/g' local.log 没有修改文件?

C:\> perl -pi.bak -e 's/ERR/OK/g' local.log

文件里面的ERR没有被替换成OK,为什么会这样啊?

另外, 我还很多地方都看到 perl -pi -e 's///' filename 的写法, 为什么我这里会提示 : Can't do inplace edit without backup.

是因为版本问题么?

ActivePerl 5.6 + WinXP pro


QUOTE:
原帖由 SadEmperor 于 2008-11-25 10:05 发表
C:\> perl -pi.bak -e 's/ERR/OK/g' local.log

文件里面的ERR没有被替换成OK,为什么会这样啊?

另外, 我还很多地方都看到 perl -pi -e 's///' filename 的写法, 为什么我这里会提示 : Can't do inplace ...

1 看看local.log.bak的内容
2 加了-i后面没有类似.bak这样的东东
local.log.bak 和local.log的内容一样。
在ubuntu下perl -pi -e 's/ERR/OK/g' local.log 可以得到正确结果

ps . win32下对所在目录由全部权限。
还真的是版本的问题,我试了一下,在linux下可以,winxp下不行。
试了一下。xp下-e后要用双引号,-i需要带参数。
perl -pi.bak -e "s/ERR/OK/g" local.log
恩 果然好使
又学了一招 呵呵
原来这样~~~ 多谢多谢~~~
这个小骆驼书里面有介绍的,中午刚看,呵呵