netcat 使用字符串分隔符将输出到单独的文件中

netcat 使用字符串分隔符将输出到单独的文件中

我希望 netcat 将 tcp/ip 连接的输出通过管道传输到检查输出的命令,并将其拆分为由输出中的字符串“msg”和“/msg”分隔的不同文件,例如

nc host port | while :
do
split 'msg' '/msg' > timestamp.txt
done

但语法不正确。理想情况下,我还希望将 nc 的整个输出附加到另一个文件,比如 big_data.txt。也许我应该使用 grep?

我知道如何将 nc 输出发送到文件,并知道如何拆分它,但文件每天会继续追加 12 个小时。此外,我认为在数据到达时拆分数据更有效率。

答案1

我在 R 中完成了所有工作。

    stream_processor <- function(host_,port)
     con2 <- socketConnection(host=host_, port=port_)
    # as non-blocking, may need to loop for input
    readLines(con2)
    while(isIncomplete(con2)) {
        Sys.sleep(1)
        z <- unlist(readLines(con2,1000))
     write(z, file=paste(make.names(date()),'.stream',sep=''))
  }
}

相关内容