帮助在Solaris上替换字符串

时间:2010-09-14 05:23:12

标签: search sed solaris

我在一个不支持sed的-i选项的Solaris 8机器上,所以我在谷歌搜索中使用以下主题:

# find . -name cancel_submit.cgi | while read file; do
> sed 's/ned.dindo.com\/confluence\/display\/CESDT\/CETS+DocTools>DOC Team/wwwin-dev.dindo.com\/Eng\/CntlSvcs\/InfoFrwk\/GblEngWWW\/Public\/index.html>EDCS Team/g' ${file} > ${file}.new
> mv ${file}.new ${file} 
> done

除非它弄乱文件权限和组:所有者。

如何保留原始信息?

2 个答案:

答案 0 :(得分:2)

你可以使用'猫'。
cat ${file}.new > ${file} && rm ${file}.new

答案 1 :(得分:2)

cp -p会保留您想要的内容。我个人会这样做(模仿sed -i.bak):

...
cp -p ${file} ${file}.bak
sed 's/..../g' ${file}.bak > ${file}
...

如果需要,您可以将rm ${file}.bak添加到最后,在这种情况下,您在技术上不需要上面-p行中的cp。但是如上所述,如果更换失败,您可以mv ${file}.bak ${file}恢复。