我试图在给定主目录和子目录中的所有文档中将“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