使用 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('{}')"
要从命令行编织一个 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('{}')"