grep和sed,文件名中包含空格

roj*_*anu 4 linux search grep replace sed

目前,我有

grep -irl $schema $WORKDIR/ | xargs sed -i 's/'"$schema"'/EXI1/gI'
Run Code Online (Sandbox Code Playgroud)

这对于带空格的文件名不起作用.

任何想法,如何递归搜索和替换所有文件?

谢谢

Has*_*kun 12

添加-Z(aka --null)标志grep,以及-0(也称为--null)标志xargs.这将输出NUL终止的文件名,并告诉xargs读取NUL终止的参数.

例如.

grep -irlZ $schema $WORKDIR/ | xargs -0 sed -i 's/'"$schema"'/EXI1/gI'
Run Code Online (Sandbox Code Playgroud)