目前,我使用以下代码来搜索和替换.php当前文件夹下任何文件中的字符串。
find . -name "*.php" -print | xargs sed -i 's/string1/string2/g'
Run Code Online (Sandbox Code Playgroud)
No such file or directory但当它遇到名称中包含空格的文件时,它会抛出错误。我如何修改这一行以包含带空格的文件?
我假设find命令的输出必须在文件路径周围输出双引号,但我不知道如何自己编写。
find . -name "*.php" -print0 | xargs -0 sed -i 's/string1/string2/g'
Run Code Online (Sandbox Code Playgroud)
您也可以完全不使用 xargs 来完成此操作:
find . -name "*.php" -execdir sed -i 's/string1/string2/g' {} +
Run Code Online (Sandbox Code Playgroud)