在Lua中,如何将控制台输出打印到文件中(管道),而不使用标准输出?

我正在使用Torch7和Lua编程语言。我需要一条命令,将我的控制台输出重定向到一个文件,而不是将其打印到我的 shell 中。 例如,在Linux中,当您键入:

$ ls > dir.txt

系统将把命令“ls”的输出打印到文件dir.txt中,而不是打印到默认的输出控制台。 我需要一个类似的Lua命令。有谁知道它是什么?

[EDIT] 一个用户建议我,这个操作被称为_piping_。因此,问题应该是:“如何在Lua中进行piping?”

[EDIT2] 我将使用这个#命令来执行:

$ torch 'my_program' # printed_output.txt

点赞
用户2782630
用户2782630

请看这里 -> http://www.lua.org/pil/21.1.html

io.write 似乎是你要寻找的。

2014-02-06 01:34:59
用户2422013
用户2422013

Lua 没有默认的函数来从控制台输出创建文件。 如果你的应用程序记录它的输出——这可能是你正在尝试的——修改 Lua C++ 源代码是唯一可能的方法。

如果你的内部系统可以访问控制台的输出,你可以做类似于下面的操作(并设置一个定时器,以便每 25 毫秒左右运行一次):

dumpoutput = function()
    local file = io.write([path to file dump here], "w+")
    for i, line in ipairs ([console output function]) do
        file:write("\n"..line);
    end
end

请注意,控制台输出函数 _必须将控制台的输出存储在一个表中_。 要在最后清除控制台,请执行“os.execute( "cls" )”。

2014-02-06 11:43:50