你好友计算的人,在多个文件的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