我在Mac中使用以下命令替换字符串。在这里,我有一个关于-print0的问题。它有什么用?
find skeleton/src/IO.Swagger/Controllers -name '*.cs' -print0| xargs -0 sed -i "" "s/namespace IO.Swagger.Controllers/namespace Abc.GroupA.TableLocalService.Controllers/g"
Run Code Online (Sandbox Code Playgroud)
使用-print0,find将使用空字符(零字节)分隔文件名。xargs然后必须使用调用-0(或--null,我建议在脚本中使用长选项,这会增加可读性,并在交互式控制台中保留用于一次性命令的缩写)。
这样,您可以在文件名中使用空格或任何字符,包括换行符。