我如何解决没有 xargs -d 的 MacOS X?

How do I work around MacOS X not having xargs -d?

我有以下命令:

xargs -d '\n' -n 8 bash -c 'phpcs_element PSR2 "" "" "" "" "" "" "" ""' -- >&2 2>/dev/null

如果我 运行 这个命令进入 Linux 它会工作,如果我尝试 运行 进入 Mac OSX 将不会因为 OSX xargs 不知道 xargs -d(分隔符)。

xargs: illegal option -- d
usage: xargs [-0opt] [-E eofstr] [-I replstr [-R replacements] [-S replsize]]
             [-J replstr] [-L number] [-n number [-x]] [-P maxprocs]
             [-s size] [utility [argument ...]]

有人找到解决此问题的方法吗?

Xargs 版本:src/usr.bin/xargs/strnsubst.c,v 1.7 2004/10/18 15:40:47

谢谢指教。

只需使用 -0 代替(使 NUL 字符成为分隔符),并将换行符转换为 NUL(这是您首先应该用来分隔文件名列表中的项目的内容: NUL,而不是换行符,是文件名中唯一不能存在的字符。

tr '\n' '[=10=]' |
  xargs -0 -n 8 bash -c 'phpcs_element PSR2 "${@:1:8}"' -- >&2 2>/dev/null