我已经重命名了一个包含文件,我想在我的代码中替换它的所有引用,所有文件都在同一个目录中。
在研究了几个网站后,我在尝试以下内容时不断出现错误(但它似乎适用于其他网站,可能是因为我使用的是Mac OS X)
grep -rl 'old-file.php' . | xargs sed -i 's/old-file.php/new-file.php/g'
我似乎得到了与第一个grep匹配文件有关的错误:
sed:1:“。/ somefile.php”:命令代码无效。
我尝试了各种形式的逃避。 ([。]和。)似乎都不起作用。
欢迎任何有用的建议!
答案 0 :(得分:0)
grep -rl 'old-file.php' . | xargs sed -i 's#old-file.php#new-file.php#g'
在此sed中使用除/
之外的其他分隔符(或转义/
)
现在如果./someFile在nsearch模式(旧文件)中,则在sed的这一部分中使用[.]
或\.
。避免其他匹配值,如(ba)d/old_file.php