2010-09-14 78 views
0

我上不支持-i選項SED在Solaris 8中,所以我用從主題谷歌搜索以下字符串替換:幫助在Solaris上

# 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

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

+0

太棒了!另一個好的選擇。我實際上使用了這一個。像魅力一樣工作。 – 2010-09-14 17:59:35

2

cp -p保留你想要的東西。我個人會這樣(模仿sed -i.bak):

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

如果需要的話,在這種情況下,你就不會在技術上需要在上面的cp-p你可以添加rm ${file}.bak到底。但是通過上述方法,您可以在mv ${file}.bak ${file}恢復,如果更換出錯。

+0

優秀!感謝一個偉大的選項W /備份。 – 2010-09-14 17:58:57