想要使用 SED 命令替换多个文件中的空格单词

想要使用 SED 命令替换多个文件中的空格单词

想要使用 SED 命令替换多个文件中的空格单词

我的多个目录中的许多文件中有一个单词“Danny”,带有单引号,我想将其更改为“Danny Samuel”

因为我的新词中有一个空格,所以这个命令不起作用

find . -type f -exec sed -e 's/'Danny'/'Danny Samuel'/g' -i.php '{}' +

答案1

单引号内不能有单引号,'in'Danny会关闭引号。

find . -type f -exec sed -e 's/'Danny'/'Danny Samuel'/g' -i.php '{}' +
                             ^^ !!!!! ^ !!!!!!!!!!!! ^^
                         quoted     quoted         quoted  
                              unquoted    unquoted

写下来:

find . -type f -exec sed -i.php -e "s/'Danny'/'Danny Samuel'/g" {} +

(请注意,.php作为备份文件的扩展名,这是非常意外的)。

相关内容