想知道为什么 sed 不能像我预期的那样与 xargs 一起工作

想知道为什么 sed 不能像我预期的那样与 xargs 一起工作

我想知道为什么以下命令不起作用:

sudo find . -name index.htm | xargs -0 sudo sed -i 's/pattern1/pattern2/g'

单独运行这两个命令时,它们按预期工作,find找到我需要更改的所有文件,并sed根据正则表达式正确替换文本(显然,当我单独运行 sed 命令时,我提供了一个文件名作为参数)。当将它们与 xargs -0 一起运行时,我得到了

sed:
    ./index.htm
    ./folder1/index.htm
    ./folder1/subfolder2/index.htm
    ...
    ...
    ./lastfolder/index.htm: No such file or directory

我最终使用了

sudo find . -name index.htm -exec sudo sed -i 's/pattern1/pattern2/g' {} \;

并且它运行良好,我只是好奇为什么使用 xargs 不起作用......

答案1

您没有使用-print0选项find

答案2

目录或文件名中是否有空格?

相关内容