首页 > 解决方案 > 以下命令中的-print0是什么意思

问题描述

我在 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"

标签: linuxshell

解决方案


使用-print0,find将使用空字符(零字节)分隔文件名。xargs然后必须使用-0(或者--null,我建议在脚本中使用长选项,这增加了可读性,并为交互式控制台中的一次性命令保留了缩写)。

这样,您可以在文件名中使用空格或任何字符,包括换行符。


推荐阅读