如何将stderr和stdout输出附加到system2 R命令中的文件?

时间:2016-09-01 13:58:14

标签: r

我正在尝试从R执行shell命令(在Ubuntu上为3.3.1),如下所示:

system2(command="ls", 
        args=c("-l", "/etc/"), 
        stdout="/tmp/stdout.log", 
        stderr="/tmp/stderr.log", 
        wait=TRUE)

不幸的是,每次执行此操作时都会覆盖日志文件的内容。我们可以以某种方式指定这个来执行追加而不是覆盖吗?

2 个答案:

答案 0 :(得分:0)

这按照我想要的方式......

text_item

答案 1 :(得分:0)

这个更好,因为它允许使用更现代的系统命令,并允许更清晰的记录。

result <- system2(command="ls", 
                  args=c("-l", "/etc/"), 
                  stdout="/tmp/stdout.log", 
                  stderr="/tmp/stderr.log", 
                  wait=TRUE)
now <- date()
cat(paste0("Executed: ", now, "\n"), file="/tmp/stdoutmain.log", append=TRUE)
file.append("/tmp/stdoutmain.log", "/tmp/stdout.log")
cat(paste0("Executed: ", now, "\n"), file="/tmp/stderrmain.log", append=TRUE)
file.append("/tmp/stderrmain.log", "/tmp/stderr.log")