我試圖在給定主目錄和子目錄中的所有文檔中將「my-silly-home-page-name.html」的名稱更改爲「index.html」 。unix在目錄和子目錄中查找和替換文本
我看到了這個:Shell script - search and replace text in multiple files using a list of strings。
這:How to change all occurrences of a word in all files in a directory
我已經試過這樣:
grep -r "my-silly-home-page-name.html" .
這個發現在其上文字存在的線,但現在我想代替「我傻,家庭PAGE-名稱'爲'索引'。 我如何使用sed或perl來做到這一點? 或者我甚至需要sed/perl?
喜歡的東西:
grep -r "my-silly-home-page-name.html" . | sed 's/$1/'index'/g'
?
另外;我用Perl想這一點,我嘗試以下方法:
perl -i -p -e 's/my-silly-home-page-name\.html/index\.html/g' *
這工作,但我得到一個錯誤,當遇到perl的目錄,說「無法做到就地編輯:SOMEDIR-NAME不是一個普通文件,<>線N」
感謝, JML
可能的重複:http://stackoverflow.com/questions/8905662/how-to-change-all-occurances-of-a-word-in-all- files-in-a-directory/ – 2012-01-18 19:41:01
我也在問一個關於perl的問題,一般來說,進入另一種方法的好處是什麼。 – jml 2012-01-18 19:47:26
我也特別想知道有關目錄的perl問題的解決方案... – jml 2012-01-18 19:50:14