我希望 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=''))
}
}