你好友計算的人,在多個文件的shell腳本上使用sed
這是一個兩部分問題。我正在編寫兩個shell腳本,目標是在文件夾及其子文件夾中的所有index.php文件中執行「查找並替換」。
第一個shell腳本是這樣的:
echo "running on all directories…"
find . -name '*.php' -exec ./search_replace.sh {} \;
,然後運行該文件search_replace:
我的問題/問題是:
當我運行第一個腳本它回聲「運行搜索和替換腳本...」13次,這是有道理的,因爲有13個索引.php文件夾中。但結果是隻有一個文件被完成,即單詞被替換並且僅創建一次新的htm文件。
有沒有辦法做到這一點,而不是基於.php文件創建一個新的.htm文件,我可以只用相同的index.php文件替換單詞?換句話說,他們可以編輯文件而不必創建一個新文件。
非常感謝,
如果你使用'備用分隔符sed'你不會有逃避所有的斜線:'sed的-e的| HTTP :// ... | file:// ... | g' – 2010-10-13 14:51:41
@丹尼斯 - 這是最好的sed提示之一 - 因爲斜線無處不在所以非常有用(一如既往)! – KevinDTimm 2010-10-13 18:49:46
在Perl世界中,我們稱之爲'http:\/\ /'類型的混亂「Leaning Toothpick Syndrome」。備用分隔符是你的朋友。 – 2010-10-13 23:56:07