netcat xuất thành các tệp riêng biệt bằng cách sử dụng các dấu phân cách chuỗi


1

Tôi muốn netcat chuyển đầu ra của kết nối tcp / ip sang các lệnh kiểm tra đầu ra và chia nó thành các tệp riêng biệt được phân tách bằng chuỗi "tin nhắn" và "/ tin nhắn" từ đầu ra, đại loại như

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

nhưng tôi không thể hiểu đúng cú pháp. Trong một thế giới lý tưởng, tôi cũng muốn toàn bộ đầu ra của nc nối vào một tệp khác, giả sử big_data.txt. Có lẽ tôi nên sử dụng grep?

Tôi biết cách gửi đầu ra nc vào một tệp và có thể tìm ra cách tách nó, nhưng tệp sẽ tiếp tục nối thêm 12 giờ mỗi ngày. Ngoài ra, tôi nghĩ sẽ hiệu quả hơn khi phân chia dữ liệu khi nó đến.

Câu trả lời:


1

Tôi đã làm tất cả trong 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=''))
  }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.