使用sed命令替换对包含已更改名称的文件的引用的错误

时间:2015-08-04 08:42:36

标签: sed grep xargs

我已经重命名了一个包含文件,我想在我的代码中替换它的所有引用,所有文件都在同一个目录中。

在研究了几个网站后,我在尝试以下内容时不断出现错误(但它似乎适用于其他网站,可能是因为我使用的是Mac OS X)

grep -rl 'old-file.php' . | xargs sed -i 's/old-file.php/new-file.php/g'

我似乎得到了与第一个grep匹配文件有关的错误:

  

sed:1:“。/ somefile.php”:命令代码无效。

我尝试了各种形式的逃避。 ([。]和。)似乎都不起作用。

欢迎任何有用的建议!

1 个答案:

答案 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