linux - 在R中运行系统命令,然后将输出写入文件

时间:2014-10-01 19:26:32

标签: linux r system

我的R代码如下。下面的代码位于名为' iot.R'的文件中。我正在Linux中执行它。

我想打印变量' fileinformation'的内容。到file = fileConn提到的文件... 我认为第3行将解决问题,但它没有提供所需的输出:(

   fileinformation = system(paste("file", filenames[1]))
    #print(fileinformation)
    cat(print(fileinformation),"\r\n","\r\n", file=fileConn)

当我运行文件时,我得到低于结果。它打印到我的屏幕,而不是写入文件:(

> source('iot.R')
CH7Data_20130401T135010.csv: ASCII text, with CRLF line terminators
[1] 0

-------------------- UPDATE1

我也试过下面的命令,但没有得到预期的rsult

cat(capture.output(fileinformation),"\r\n","\r\n", file=fileConn)

2 个答案:

答案 0 :(得分:2)

您需要在intern的通话中将TRUE参数设置为system。例如:

    fileinformation<-system("file cinzia_2.gif",intern=TRUE)
    fileinformation
    #[1] "cinzia_2.gif: GIF image data, version 89a, 640 x 640"

当然我在电脑上试过一个文件。将intern设置为TRUEsystem的返回值将成为命令的控制台输出。然后,当您致电cat时,您无需将fileinformation括起来print,但简单的cat(fileinformation,"\r\n","\r\n", file=fileConn)就足够了。

答案 1 :(得分:0)

嗨只是评论,因为我没有足够的代表以正常的方式发表评论。但你不能使用

write.table

将输出保存到文件?这可能更容易吗?