使用 GNU parallel 从命令行渲染许多 Rmds

Rendering many Rmds from command line using GNU parallel

要从命令行编织一个 Rmd,您可以执行以下操作,它会创建一个 HTML

Rscript -e "rmarkdown::knit('test.Rmd')"

我想为许多使用 GNU parallel 的 Rmd 执行此操作,我已经尝试过这个和它的各种版本,我在其中移动了引号

find -name "*.Rmd" | parallel Rscript -e "rmarkdown::render('{}')"

但我总是出错。

/bin/bash: -c: line 0: syntax error near unexpected token `('
/bin/bash: -c: line 0: `Rscript -e rmarkdown::render('./test.Rmd')'

我认为这与引号的位置有关,因为根据引号的放置位置,我会得到不同的错误。问题是什么?它是否在做一些有趣的事情,比如只尝试并行化 Rscript 而不是并行化之后的事情?

来自man parallel

   If you get errors like:

     sh: -c: line 0: syntax error near unexpected token
     sh: Syntax error: Unterminated quoted string
     sh: -c: line 0: unexpected EOF while looking for matching `''
     sh: -c: line 1: syntax error: unexpected end of file
     zsh:1: no matches found:

   then you might try using -q.

所以:

find -name "*.Rmd" | parallel -q Rscript -e "rmarkdown::render('{}')"