netcat output em arquivos separados usando delimitadores de string

1

Eu quero que o netcat canalize a saída de uma conexão tcp / ip para os comandos que examinam a saída e a dividem em arquivos distintos separados pelas strings "msg" e "/ msg" da saída, algo como

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

mas não consigo acertar a sintaxe. Em um mundo ideal, eu também gostaria que toda a saída do nc fosse acrescentada a outro arquivo, digamos big_data.txt. Talvez eu deva usar o grep?

Eu sei como enviar saída nc para um arquivo e posso descobrir como dividi-lo, mas o arquivo continuará sendo anexado por 12 horas por dia. Além disso, acho mais eficiente dividir os dados à medida que eles chegam.

    
por Yoda 17.05.2013 / 05:10

1 resposta

1

Eu fiz tudo na 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=''))
  }
}
    
por 24.05.2013 / 20:23